中原工学院信息商务学院 操作系统课程设计报告 cout< cout< cout<<\for(j=0;j int changdata(int i)//进行资源分配 { int j; for (j=0;j int safe()//安全性算法 {int i,k=0,m,apply,Finish[100]={0}; int j; for(i=0;i apply++;//当需求资源数目都小于可用资源数时,改变分配资源数目 if(apply==N) {for(m=0;m Work[m]=Work[m]+Allocation[i][m];//变分配数 Finish[i]=True; temp[k]=i;//记录调度进程的安全序列 i=-1; //用于返回上一级寻找需求资源小于可用资源的进程 k++;} } } } - 17 - 中原工学院信息商务学院 操作系统课程设计报告 for(i=0;i cout<<\系统是安全的!\如果安全,输出成功 cout<<\分配的序列:\for(i=0;i cout<<\if(i 中原工学院信息商务学院 操作系统课程设计报告 } } if(ch=='y') {changdata(i);//根据进程需求量变换资源 showdata();//根据进程需求量显示变换后的资源 safe();//根据进程需求量进行银行家算法判断 } } void addresources()//添加资源 {int n,flag; cout<<\\cout<<\\cout<<\\cout<<\\cout<<\┗━━━━━━━━━━━━━━━━━━━━━━━┛ \cout<<\请输入需要添加资源种类的数量:\flag=N;N=N+n; for(int i=0;i showdata();safe(); } void delresources()//删除资源 {char ming;int i,flag=1; cout<<\\cout<<\\cout<<\\┃ 删除资源,并检测安全性 - 19 - ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ ┃ 添加资源,并检测安全性 ┃ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ ┃ 中原工学院信息商务学院 操作系统课程设计报告 cout<<\\cout<<\\┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ ┗━━━━━━━━━━━━━━━━━━━━━━━┛ cout<<\请输入需要删除的资源名称:\do {cin>>ming; for(i=0;i for(j=i;j int Nam,j; int i,flag=1; cout<<\\cout<<\\cout<<\\cout<<\\cout<<\\cout<<\请输入需要删除的进程名称:P\ - 20 - ┏━━━━━━━━━━━━━━━━━━━━━━━┓ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ ┃ 删除进程,并检测安全性 ┃ ┃☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆┃ ┗━━━━━━━━━━━━━━━━━━━━━━━┛