- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
银行家算法实验报告-课程设计
银行家算法实验报告-课程设计
实验类型:? 验证性实验
学 时: 4
适用对象: 信息与计算科学专业
一、实验目的?? (黑体,小4号字)
熟悉银行家算法,理解系统产生死锁的原因及避免死锁的方法,加深记意。
二、实验要求? (黑体,小4号字)
用高级语言编写和调试一个描述银行家算法的程序。
设计五个进程{P0,P1,P2,P3,P4}共享三类资源{A,B,C}的系统,{A,B,C}的资源数量分别为10,5,7。进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。要求程序具有显示和打印各进程的某一时刻的资源分配表和安全序列;显示和打印各进程依次要求申请的资源号以及为某进程分配资源后的有关资源数据。
三、实验原理(黑体,小4号字)
利用银行家算法避免死锁
1、银行家算法中的数据结构
(1)可利用资源向量Available
(2)最大需求规阵Max
(3)分配矩阵Allocation
(4)需求矩阵Need
2、银行家算法
(1)如果Requesti<或=Need,则转向步骤2;否则,认为出错,因为它所需要的资源数已超过它所宣布的最大值。
(2)如果Request<或=Available,则转向步骤(3);否则,表示系统中尚无足够的资源,P1必须等待。
(3)系统试探把要求的资源分配给进程Pi,并修改下面数据结构中的数值:
Available:=Available-Requesti;
Allocation:=Allocationi+Request;
Needi:=Needi-request;
(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。
3、安全性算法
系统所执行的安全性算法可描述如下:
(1)设置两个向量
①工作向量Work。它表示系统可提供进程继续运行所需要的各类资源数目,它含有m个元素,执行安全算法开始时,Work:=Allocation;
②Finish。它表示系统是否有足够的资源分配给进程,使之运行完成,开始时先做Finish[i]:=false;当有足够资源分配给进程时,令Finish[i]:=true。
(2)从进程集合中找到一个能满足下述条件的进程:
①Finish[i]:=false
②Need/=Work
如找到,执行步骤(3);否则,执行步骤(4)。
(3)当进程P获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:
Work:=Work+Allocation;
Finish[i]:=true;
Go to step 2;
(4)如果所有进程的Finish[i]=true,则表示系统处于安全状态;否则,系统处于不安全状态。
4、银行家算法之例
假设有五个进程{P0,P1,P2,P3,P4}和三种类型的资源{A,B,C},每一种资源的数量分别为10、5、7,在T0时刻的资源分配情况如图1所示。
?????????图1
(1)T0时刻的安全性
利用安全性算法对T0时刻的资源分配情况进行分析,可得下表所示的T0时刻的安全性分析,从中得知,T0时刻存在着一个安全序列{P1,P3,P4,P2,P0},故系统是安全的,如图2所示。
?????????图2???
(2) P1请求资源
P1发出请求向量Request(1,0,2),系统按银行家 算法进行检查:
(1)Request1(1,0,2)≤Need(1,2,2)
(2)Request1(1,0,2)≤Available(3,3,2)
(3)系统先假定可为P1分配资源,并修改Aailable,Allocation1和Need1向量,由此形成的资源变化情况如图1中的圆括号所示。
(4)我们再利用安全性检查此时系统是否安全。
由所进行的安全性检查得知,可以找到一个安全序列{P1,P3,P4,P2,P0}。因此,系统是安全的,可以立即将P1所申请的资源分配给它。
(3)P4请求资源
P4发出请求向量Request(3,3,0),系统按银行家算法进行检查:
(1)Request4(3,3,0)≤Need4(4,3,1)。
(2)Request4(3,3,0)Available(2,3,0),让P4等待。
(4) P0请求资源
P0发出请求向量Request0(0,2,0),系统按银行家算法进行检查:
(1)Request0(o,2,0)或=Need0(7,4,3));
(5)进行安全性检查
可用资源Available{2,1,0}已不能满足任何进程的需要,故系统进入不安全状态,此时系统不分配资源。
如果在银行家算法中,把P0发出的请求向量改为Request(0,1,0),系统是否能将资源分配给它,请读者考虑
四、实验所需仪器、设备、材料
PC机
五、实验预习要求、实验条件、方法及步骤
1)熟练掌握死锁相关的基本概念。
2)
您可能关注的文档
最近下载
- VirtualLab软件操作和实例剖析培训讲义.pptx
- DB52T 1807-2024 农田地膜残留监测技术规范.docx VIP
- 污水处理药剂采购投标方案(技术标 347页).docx VIP
- T∕CECA-G 0049-2020 “领跑者”标准评价要求 通风机.docx VIP
- 二级注册计量师:二级注册计量师.doc VIP
- GB50286-2013 堤防工程设计规范.docx
- 基础营养学题库.doc VIP
- 2024年大学试题(艺术学)-美术鉴赏笔试考试历年典型考题及考点含含答案.docx
- 抚养权变更协议.docx VIP
- GB∕T 4728.1-2018 电气简图用图形符号 第1部分一般要求.pdf
文档评论(0)