预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

淮海工学院计算机工程学院实验报告书课程名:《计算机操作系统》题目:实验二银行家算法班级:^^姓名:^^评语:成绩:指导教师:批阅时间:年月日编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第PAGE13页共NUMPAGES14页第PAGE\*MERGEFORMAT13页共NUMPAGES\*MERGEFORMAT14页实验二银行家算法实验目的和要求应用银行家算法验证进程安全性检查及分配资源编制模拟银行家算法的程序,并以以下例子验证程序的正确性。实验环境1.PC微机。2.Windows操作系统。3.C/C++/VB开发集成环境。实验学时2学时,必做实验实验内容和步骤1)根据算法流程图编制可执行程序2)用以下两个例子验证程序的正确性。3)按照上述两个例子,输出执行的结果。算法流程图银行家算法:安全性算法:【例1】某系统有A、B、C、D这4类资源供5个进程共享,进程对资源的需求和分配情况如下表所示。现在系统中A、B、C、D类资源分别还剩1、5、2、0个,请按银行家算法回答下列问题:进程已占资源最大需求数ABCDABCDP100120012P210001750P313542356P406320652P500140656(1)现在系统是否处于安全状态?(2)如果现在进程P2提出需要(0,4,2,0)个资源的请求,系统能否满足它的请求?【例2】用银行家算法考虑下列系统状态:进程分配矩阵最大需求矩阵资源总数矩阵A301141116342B01000212C11104210D11011111E00002110问系统是否安全?若进程B请求(0,0,1,0),可否立即分配?此后进程E也请求(0,0,1,0),可否分配给它?通过运行程序发现,例1当中的系统处于不安全状态,进程P2提出的请求无法实现;例2当中的系统处于安全状态,进程B提出的请求能实现,此后进程E的请求也能实现。源代码#include<iostream>#defineN20#defineM20usingnamespacestd;intf(inta[N][M],intb[N][M],intm,intk){intj;for(j=0;j<m;j++)if(a[k-1][j]>b[k-1][j])return0;return1;}intg(inta[N][M],intb[],intm,intk){intj;for(j=0;j<m;j++)if(a[k][j]>b[j])return0;return1;}inth(inta[],intn){for(inti=0;i<n;i++)if(!a[i])return0;return1;}intp(inta[],intb[N][M],intm,intk){intj;for(j=0;j<m;j++)if(a[j]>b[k-1][j])return0;return1;}intq(inta[],intb[],intm){intj;for(j=0;j<m;j++)if(a[j]>b[j])return0;return1;}intsafe(intFinish[N],intWork[M],intNeed[N][M],intAllocation[N][M],intn,intm){inti,j,k;intt[N];for(i=0;i<n;i++)t[i]=1;cout<<"安全性检查!"<<endl;for(i=0;i<n;)//首先找到一个满足条件的进程{if((Finish[i]==0)&&g(Need,Work,m,i)){k=i;t[i]=0;cout<<"p("<<k+1<<"):"<<endl;cout<<"Work["<<m<<"]:";for(j=0;j<m;j++){cout<<Work[j]<<"";Work[j]=Work[j]+Allocation[i][j];Finish[i]=1;}cout<<endl;cout<<"Need["<<m<<"]:";for(j=0;j<m;j++)cout<<Need[i][j]<<"";cout<<endl;cout<<"Allocation["<<m<<"]:";for(j=0;j<m;j++)cout<<Allocation[i][j]<<"";cout<<endl;cout<<"(Work+Allocation)["<<m<<"]:";for(j=0;j<m;j++)cout<<Wor