cout< cout< cout< int changdata(int i)//进行资源分配 { int j; for (j=0;j Avaliable[j]=Avaliable[j]-Request[j]; Allocation[i][j]=Allocation[i][j]+Request[j]; Need[i][j]=Need[i][j]-Request[j]; } return 1; } int safe()//安全性算法 { int i,k=0,m,apply,Finish[100]={0}; int j; int flag=0; for(i=0;i for(j=0;j if (Finish[i]==False&&Need[i][j]<=Work[j]) { apply++; if(apply==N) { for(m=0;m Work[m]=Work[m]+Allocation[i][m];//变分配数 Finish[i]=True; temp[k]=i; i=-1; k++; flag++; } } } } for(i=0;i cout<<\系统不安全\不成功系统不安全 return -1; } } cout<<\系统是安全的!\如果安全,输出成功 cout<<\分配的序列:\ for(i=0;i cout< void share()//利用银行家算法对申请资源对进行判定 { char ch; int i=0,j=0; ch='y'; cout<<\请输入要求分配的资源进程号(0-\ cin>>i;//输入须申请的资源号 cout<<\请输入进程 \申请的资源:\for(j=0;j cout< cin>>Request[j];//输入需要申请的资源 } for (j=0;j if(Request[j]>Need[i][j])//判断申请是否大于需求,若大于则出错 { cout<<\进程 \申请的资源大于它需要的资源\ cout<<\分配不合理,不予分配!\ ch='n'; break; } else { if(Request[j]>Avaliable[j])//判断申请是否大于当前资源,若大于则 { //出错 cout<<\进程\申请的资源大于系统现在可利用的资源\ cout<<\分配出错,不予分配!\ ch='n'; break; } } } if(ch=='y') { changdata(i);//根据进程需求量变换资源 showdata();//根据进程需求量显示变换后的资源 safe();//根据进程需求量进行银行家算法判断 } } void addresources(){//添加资源 int n,flag; cout<<\请输入需要添加资源种类的数量:\cin>>n; flag=N; N=N+n; for(int i=0;i