www.pudn.com > os4.rar > os4.cpp
//************************ 银 行 家 算 法 ************************** //*********************************************************************** #includeusing namespace std; #define N 4 //定义进程数 #define M 3 //定义资源数 #define False 0 #define True 1 int Max[N][M]={{3,2,2},{6,1,3},{3,1,4},{4,2,2}}; int Allocation[N][M]={{1,0,0},{5,1,1},{2,1,1},{0,0,2}}; int Need[N][M]={{2,2,2},{1,0,2},{1,0,3},{4,2,0}}; int Available[M]={1,1,2}; int Request[M]; void showdata();//显示资源状况 int request(int i);//资源分配算法 int safe();//安全性算法 int free(int i);//资源释放 void showdata() { int i,j; cout<<"+++++++++++++++++++++++++++++++"< :"; for (j=0;j \n"; for (i=0;i \n"; for (i=0;i \n"; for (i=0;i Need[i][j]) { cout<<"对不起,申请的资源大于它需要的资源数,请重试!"; return -1; break; } if(Request[j]>Available[j]) { cout<<"对不起,当前系统可用资源不够,请等待!"; return -1; break; } } for (j=0;j >choice; if(choice==1)//分配资源 { int i; cout<<"请输入您要分配的进程号(0,1,2,3):"; cin>>i; cout<<"请输入您要为该进程分配的资源 :"; for(int j=0;j >Request[j]; request(i); } else if(choice==2)//释放资源 { int i; cout<<"请输入您要释放资源的进程号(0,1,2,3):"; cin>>i; free(i); } else if(choice==3)//显示资源 { showdata(); } else if(choice==4) break; //离 开 else cout<<"请输入合法数字!"; } }