求操作系统银行家算法源代码,能编译通的
的有关信息介绍如下:

之前的操作系统课程设计找的.希望对你有用.#include#include#include#define False 0#define True 1int Max[100][100]={0};//各进程所需各类资源的最大需求int Avaliable[100]={0};//系统可用资源char name[100]={0};//资源的名称int Allocation[100][100]={0};//系统已分配资源int Need[100][100]={0};//还需要资源int Request[100]={0};//请求资源向量int temp[100]={0};//存放安全序列int Work[100]={0};//存放系统可提供资源int M=100;//作业的最大数为100int N=100;//资源的最大数为100void showdata()//显示资源矩阵{ int i,j; cout<<"系统目前可用的资源[Avaliable]:"<>i;//输入须申请的资源号cout<<"请输入进程 "<>Request[j];//输入需要申请的资源} for (j=0;jNeed[i][j])//判断申请是否大于需求,若大于则出错 { cout<<"进程 "<Avaliable[j])//判断申请是否大于当前资源,若大于则 { //出错 cout<<"进程"<>n;flag=N;N=N+n;for(int i=0;i>name[flag]; cout<<"数量:"; cin>>Avaliable[flag++];}showdata();safe();}void delresources(){//删除资源char ming;int i,flag=1;cout<<"请输入需要删除的资源名称:";do{ cin>>ming;for(i=0;iAvaliable[0]>>Avaliable[1]>>Avaliable[2];cout<<"经修改后的系统可用资源为"<Max[flag][i]; Need[flag][i]=Max[flag][i]-Allocation[flag][i];}showdata();safe();}int main()//主函数{ int i,j,number,choice,m,n,flag;char ming;cout<<"*****************资源管理系统的设计与实现*****************"<>n;N=n;for(i=0;i>ming; name[i]=ming; cout<<"资源的数量:"; cin>>number; Avaliable[i]=number;}cout<>m;M=m;cout<<"请输入各进程的最大需求量("<>Max[i][j];do{ flag=0; cout<<"请输入各进程已经申请的资源量("<>Allocation[i][j]; if(Allocation[i][j]>Max[i][j]) flag=1; Need[i][j]=Max[i][j]-Allocation[i][j]; } if(flag) cout<<"申请的资源大于最大需求量,请重新输入!\n";}while(flag); showdata();//显示各种资源 safe();//用银行家算法判定系统是否安全 while(choice){ cout<<"**************银行家算法演示***************"<>choice; switch(choice) { case 1: addresources();break; case 2: delresources();break; case 3: changeresources();break; case 4: share();break; case 5: addprocess();break; case 0: choice=0;break; default: cout<<"请正确选择功能号(0-5)!"<