cout< cout<<\*|\ }/*-------------------------输出函数结束--------------------------------*/ /*-------------------------试分配函数----------------------------------*/ void tryfenpei(int n) { int i; cout<<\您输入的是 \进程\ cout<<\该进程需求量为: \ for(i=0;i cout< cout<<\请输入请求资源的数目:\ for(i=0;i while(cin>>Request[i]) { if (Request[i]<0) { cout<<\输入的数字无效.\ } else if (Request[i]>Need[n][i]) { cout<<\超出进程需求量\ } else if (Request[i]>Available[i]) { cout<<\系统没有足够的可用资源量满足进程需要\ } else break; } } cout<<\输入成功,输入的是:\ for(int f=0;f cout< cout<<\执行银行家算法,进行试分配...\ 15 for( f=0;f Available[f] = Available[f] - Request[f]; Allocation[n][f] = Allocation[n][f] + Request[f]; Need[n][f] = Need[n][f]-Request[f]; } cout<<\试分配完成!\ }/*-------------------------试分配函数结束----------------------------------*/ /*-------------------------安全检测函数----------------------------------*/ void checksafe(int x) { cout<<\进入安全性检测...\ int i,m,apply,j,k=0,flag=0; int Work[M],temp[N]; bool Finish[N]; //t为进程数 for(i=0;i Work[i]=Available[i]; } for(i=0;i Finish[i]=false; } for(i=0;i apply=0; for(j=0;j if (false==Finish[i] && Need[i][j]<=Work[j]) { apply++;//标记是否所需的资源都得到满足 if(apply==c) { for(m=0;m Work[m]=Work[m]+Allocation[i][m];//变分配数 w=w+a } Finish[i]=true; temp[k++]=i;//将满足的进程号存入temp[]数组中 16 i=-1; //若有进程满足条件则从头开始寻找 } } } } for(i=0;i if(Finish[i]==false) { cout<<\试分配后系统不安全!!! 本次资源申请不成功!!!\ cout<<\等待恢复原来的数据...\ refenpei(in); return ; } } cout<<\安全序列:\ cout<<\分配的序列:\ for(i=0;i cout<<\ } cout<<\ cout<<\已通过安全性测试!\ cout<<\开始给第 \进程分配资源...\ cout<<\分配完成!等待打印输出...\ Print(); return ; }/*-------------------------安全性检查函数结束----------------------------------*/ /*-------------------------恢复数据函数----------------------------------*/ void refenpei(int i) { for(int f=0;f Available[f] = Available[f] + Request[f]; Allocation[i][f] = Allocation[i][f] - Request[f]; Need[i][f] = Need[i][f] + Request[f]; } cout<<\数据已恢复初始状态...\Print(); } 17 设计体会 教师评语: 成绩: 指导教师: 设计体会 教师评语: 成绩: 指导教师: