银行家算法实验要求及代码

银行家算法实验要求及代码

ID:35467664

大小:63.12 KB

页数:7页

时间:2019-03-25

银行家算法实验要求及代码_第1页
银行家算法实验要求及代码_第2页
银行家算法实验要求及代码_第3页
银行家算法实验要求及代码_第4页
银行家算法实验要求及代码_第5页
资源描述:

《银行家算法实验要求及代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、银行家算法编写一程序,能够模拟银行家算法和安全算法來避免死锁。假设系统资源有A、B、C三种,可以运行5个进程。该程序具备的基本功能为:(1)程序可以输入3种资源的数目,5个进程对3种资源的最大需求量、已分配量和需求量。(2)能够判断某一吋刻系统是否处于安全状态,如果处于安全状态能够给出安全序列。(3)当某进程提岀资源申请时,能够判断是否能把资源分配给申请进程。#includeusingnamespacestd;#defineMAX100voidlnput();//用于输入的函数voidOutput();//用于打印输出表格的函数voidAllocf);//

2、试分配给进程iintSafecheck();//安全检测函数voidRedata(inti);//恢复原来的资源分配状态〃定义初始化数组intAvailable[3];intSum[3]={10z5,7};//Sum为各类资源总数//Available三类资源(A,B,C)的可利用量intRequest[3];//Request三类资源(A,B,C)申请资源量intMax[5][3]二{{7,5,3},{322},{9,0,2},{2,2,2},{4,3,3}};〃三类资源(A,B,C)的最大需求量intAllocation⑸⑶二{{0,1,0},{2,0,0},{3,0,2

3、},{2,1,1},{0。2}};//三类资源(A,B,C)已分配量intNeed⑸⑶;//三类资源(A,B,C)进程需求量voidmain(){intchoice;inti=0;docout«endl;coutvv”欢迎银行家算法系统(资源数3进程:5)!"«endl«endl;cout«H**************银行家算法***************Mvvend卜cout«n2:输入数据"«endl;cout«N2:显示矩阵"«endl;cout«"3:分配资源"«endl;cout«H0:退出系统"«endl;cout«n*********************

4、******************H«end1•cout«H请选择功能号:讥/cin>>choice;choice=toupper(choice);switch(choice){casel:lnput();break;case2:Output();break;case3:Alloc();break;case0:cout«"退出成功"«endl;break;default:coutvv"输入无效,请重输:";break;}}while(choice!=0);}voidlnput()〃用于输入的函数{inti,j;/*cout«"请输入A,B,C三种资源的数目:"«endl;/

5、*Available[3]二{10,5刀;for(i=0;iv3;i++){cin»Available[i];}"«endl;«endl;cout«-请分别输入五个进程对三种资源的最大需求量//Max[5][3]={{7z5,3},{3,2/2}/{9,0,2},{2/2/2},{4/3,3}};for(i=0;i<5;i++){cout«”进程”vvi«“对三种资源的最大需求量:for(j=0;j<3;j++){cin»Max[i][j];}}cout«”请分别输入五个进程对三种资源的已分配量://Allocation⑸[3]={{0/1,0}/{2,0,0}/{3/0/2

6、}/⑵1,1},{0,0,2}};for(i=0;i<5;i++){coutvv”进程”vvivv“对三种资源的已分配量for(j=0;j<3;j++){cin»Allocation}}*/ints[3]={0};for(j=0;j<3;j++)for(i=0;i<5;i++)〃对已分配资源求和s[j]=s[j]+Allocation[i][j];Available[j]=Sum[j]-s[j];〃求剩余可用资源}for(i=0;i<5;i++)//进程i对三种资源的需求量:{for(j=0;j<3;j++){Need[i][j]=Max[i][j]-Allocation[i

7、][j];}}cout«endl;}voidAlloc()〃分配给进程i{inti,j;intflag;charyes;do{cout«"进程号(0~4):”;cin»i;if(i>4

8、

9、i<0)coutvv“进程号不正确,请重输:"«endl;}while(i>4

10、

11、i<0);cout«-请求量(3种资源):”;for(j=0;j<3;j++)cin»Request[j];flag=O;//初始化为0,即未请求或请求未成功for(j=0;j<3;j++){讦(Request[j]<=Need[i][j

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。