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