欢迎来到天天文库
浏览记录
ID:48015518
大小:17.43 KB
页数:6页
时间:2020-01-18
《银行家算法代码.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#includeusingnamespacestd;#defineMAXPROCESS50/*最大进程数*/#defineMAXRESOURCE100/*最大资源数*/intAVAILABLE[MAXRESOURCE];/*可用资源数组*/intMAX[MAXPROCESS][MAXRESOURCE];/*最大需求矩阵*/intALLOCATION[MAXPROCESS][MAXRESOURCE];/*分配矩阵*/intNEED[MAXPROCESS][MAXRESOURCE];/*需求矩阵*/intREQUEST[MAXPROCESS][MAXRESOUR
2、CE];/*进程需要资源数*/boolFINISH[MAXPROCESS];/*系统是否有足够的资源分配*/intp[MAXPROCESS];/*记录序列*/intm,n;/*m个进程,n个资源*/voidInit();boolSafe();voidBank();voidshowdata(int,int);intmain(){Init();Safe();Bank();}voidInit()/*初始化算法*/{inti,j;cout<<"请输入进程的数目:";cin>>m;cout<<"请输入资源的种类:";cin>>n;cout<<"请输入每个进程最多所需的各资源数,按照"<<
3、m<<"x"<>MAX[i][j];cout<<"请输入每个进程已分配的各资源数,也按照"<>ALLOCATION[i][j];NEED[i][j]=MAX[i][j]-ALLOCATION[i][j];if(NEED[i][j]<0){cout<<"您输入的第"<4、l;j--;continue;}}}cout<<"请输入各个资源现有的数目:"<>AVAILABLE[i];}}voidBank()/*银行家算法*/{inti,cusneed,flag=0;charagain;while(1){showdata(n,m);////////////////////////////////////////////////////////////////////cout<>cu5、sneed;if(cusneed>m){cout<<"没有该进程,请重新输入"<>REQUEST[cusneed][i];}for(i=0;iNEED[cusneed][i])//如果用户选择的线程的第i个资源请求数>该线程该资源所需的数量{cout<<"您输入的请求数超过进程的需求量!请重新输入!"<A6、VAILABLE[i])//如果用户选择的线程的第i个资源请求数>系统现有的第i个资源的数量{cout<<"您输入的请求数超过系统有的资源数!请重新输入!"<7、}if(Safe())//AVAILABLEALLOCATIONNEED变动之后,是否会导致不安全{cout<<"同意分配请求!"<
4、l;j--;continue;}}}cout<<"请输入各个资源现有的数目:"<>AVAILABLE[i];}}voidBank()/*银行家算法*/{inti,cusneed,flag=0;charagain;while(1){showdata(n,m);////////////////////////////////////////////////////////////////////cout<>cu
5、sneed;if(cusneed>m){cout<<"没有该进程,请重新输入"<>REQUEST[cusneed][i];}for(i=0;iNEED[cusneed][i])//如果用户选择的线程的第i个资源请求数>该线程该资源所需的数量{cout<<"您输入的请求数超过进程的需求量!请重新输入!"<A
6、VAILABLE[i])//如果用户选择的线程的第i个资源请求数>系统现有的第i个资源的数量{cout<<"您输入的请求数超过系统有的资源数!请重新输入!"<7、}if(Safe())//AVAILABLEALLOCATIONNEED变动之后,是否会导致不安全{cout<<"同意分配请求!"<
7、}if(Safe())//AVAILABLEALLOCATIONNEED变动之后,是否会导致不安全{cout<<"同意分配请求!"<
此文档下载收益归作者所有