实验七--银行家算法模拟实验

实验七--银行家算法模拟实验

ID:41628060

大小:59.32 KB

页数:6页

时间:2019-08-29

实验七--银行家算法模拟实验_第1页
实验七--银行家算法模拟实验_第2页
实验七--银行家算法模拟实验_第3页
实验七--银行家算法模拟实验_第4页
实验七--银行家算法模拟实验_第5页
资源描述:

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

1、实验七银行家算法模拟实验一、实验目的(1)进一步理解利用银行家算法避免死锁的问题;(2)在了解和掌握银行家算法的基础上,编写银行家算法通用程序,友好显示调试结果;(3)理解和掌握安全序列、安全性算法。二、实验环境(1)装有MicrosoftVisualStudioC++6.0专业版或企业版。三、实验内容及原理(-)实验内容理解什么是死锁?理解利用银行家算法避免死锁的原理;会使用某种编程语言模拟实验银行家算法。(二)实验原理1、安全状态指系统能按照某种顺序如<Pl,P2,...,Pn>(称为<P1

2、,P2,...,Pn>序列为安全序列),为每个进程分配所需的资源,直至最大需求,使得每个进程都能顺利完成。2、银行家算法假设在进程并发执行时进程i提出请求j类资源k个后,表示为RequestiUJ=ko系统按下述步骤进行安全检查:(1)如果Requesti[]^Need[]MiJ继续以下检查,否则显示需求申请超出最大需求值的错误。(2)如果Requestif]CAvailablef]则继续以下检查,否则显示系统无足够资源,Pi阻塞等待。(3)系统试探着把资源分配给进程Pi,并修改下面数据结构中的

3、数值:Available[j]:=Available[j]-Requesti[j];Allocation[i,j]:=Allocation[i,j]+Requesti[j];Need[i,j]:=Need[i,j]-Requesti[j];(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程Pi,以完成本次分配;否则,将本次的试探分配作废,恢复原来的资源分配状态,让进程Pi等待。3、安全性算法(1)设置两个向量:①工作向量Work:它表示系统可提供给

4、进程继续运行所需的各类资源数目,它含有加个元素,在执行安全算法开始吋,Work:=Available;②Finish:它表示系统是否有足够的资源分配给进程,使之运行完成。开始时先做Finish(1):二false;当有足够资源分配给进程时,再令Finish[i]:=true0(2)从进程集合中找到一个能满足下述条件的进程:①Finish[i]=false;②Need[i,j]WWork[j];若找到,执行步骤⑶,否则,执行步骤⑷。(3)当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它

5、的资源,故应执行:>Work[j]:=Work[订+Allocation[i,j];>Finish[i]:=true;>gotostep2;(4)如果所有进程的Finish[i]二tee都满足,则表示系统处于安全状态;否则,系统处于不安全状态。[参考代码如下]^include#defineM50intmax[M][M];intal1ocation[M][M];intneed[M][M];intava订able[M];inti,j,n,m,anquan,x=0;main(){vo

6、idcheck();intp,q,control;intreq[M],allocationl[M][M],needl[M][M],availablei[M];printfC输入进程总个数:〃);scanf("%d",&n);printfC输入资源种类数量:〃);scanf("%d",&m);printfC输入最大需求矩阵MAX:rT);for(i=0;i

7、:z,);for(i二0;i〈n;i++)for(j=0;j

8、]=available[i]-allocation[订[j];*/check();if(anquan==l)//如果当前状态全{for(control=0;;control++){P=0,q=0;printfC输入请求资源的进程号:〃);scanf("%d",&i);printf(z/输入该进程的请求资源数目:〃);for(j=0;jneed[i][j])P=l;if(p)printfC请求

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

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

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