操作系统---银行家算法.doc_第1页
操作系统---银行家算法.doc_第2页
操作系统---银行家算法.doc_第3页
操作系统---银行家算法.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/*操作系统-银行家算法*/#define M 100#define N 100#includeint maxMM,allocationMM,needMM,availableM; int i,j,n,m,r; /*m,j为资源数目,n,i为进程数,r为判断是否安全标志*/*安全性检测*/void test()int workM,aM; /*aM记录执行的顺序*/int k,flag,v; /*flag检测进程是否满足两条件*/ char finishN;r=1;v=0; /*假设一开始安全*/for(j=0;jm;j+)workj=availablej; for(i=0;i0) /*进行n趟判断,并记录顺序*/for(i=0;in;i+) /*寻找一个满足俩条件的进程*/ if(finishi=f) flag=1; /*满足条件1*/ for(j=0;jworkj)/*不满足条件2*/flag=0; if(flag=1) /*满足俩个条件*/for(j=0;jm;j+)workj+=allocationij; finishi=t; av=i; v+; k-;flag=1;for(i=0;in;i+)if(finishi=f)flag=0;if(flag=0)/*判断是否安全*/printf(系统处于不安全状态.n);r=0;elseprintf(系统处于安全状态n安全顺序为:n); /*输出安全状态的顺序*/for(i=0;in;i+)printf(%d,ai);printf(n);printf(目前的分配矩阵allocation为n);for(i=0;in;i+)for(j=0;jm;j+)printf(%5d,allocationij);printf(n);printf(目前的需求矩阵need为n);for(i=0;in;i+)for(j=0;jm;j+)printf(%5d,needij);printf(n);/*资源、进程输入输出*/void main()int p=0,q=0; /*用于判断requestM是否满足条件*/int requestMM,allocation_1MM,need_1MM,available_1M;printf(请输入进程数目:); scanf(%d,&n);printf(请输入资源种类:);scanf(%d,&m);printf(请输入可利用资源向量availablen);for(j=0;jm;j+)scanf(%d,&availablej);printf(请输入最大需求矩阵maxn);for(i=0;in;i+)for(j=0;jm;j+)scanf(%d,&maxij);printf(请输入分配矩阵allocationn);for(i=0;in;i+)for(j=0;jm;j+)scanf(%d,&allocationij);printf(则需求矩阵为n);for(i=0;in;i+)for(j=0;jm;j+)needij=maxij-allocationij;printf(%5d,needij);printf(n);/*请求资源*/test();if(r=1)while(1)printf(请输入请求资源的进程(0%d):,n-1); scanf(%d,&i);printf(请输入请求的资源数n); /*输入requestij*/for(j=0;jm;j+)scanf(%d,&requestij);for(j=0;jneedij)q=1;if(q=1)printf(它所需资源已超过它宣布的最大值n);elsefor(j=0;jm;j+)if(requestij=availablej)p=1;if(q=1)printf(资源不足,进程%d需等待n,i);else /*request满足俩条件,试探性分配*/for(j=0;jm;j+)available_1j=availablej;allocation_1ij=allocationij;need_1ij=needij;availablej-=requestij;allocationij+=requestij;needij-=requestij;test();if(r=0)for(j=0;jm;j+)availablej=available_1j;allocationij=allocation_1ij;needij

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论