资源描述:
《银行家算法解题方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、银行家算法之例假定系统中有五个进程{P0、P1、P2、P3、P4}和三种类型资源{A、B、C},每一种资源的数量分别为10、5、7。各进程的最大需求、T0时刻资源分配情况如下所示。最大值已分配还需要可用MaxAllocationNeedAvailableABCABCABCABCP0753010743332P1322200122P2902302600P3222211011P44330024311试问:①T0时刻是否安全?②T0之后的T1时刻P1请求资源Request1(1,0,2)是否允许?③T1之后的T2时刻P4请求资源Request4(3,3,0)是否允许?
2、④T2之后的T3时刻P0请求资源Request0(0,2,0)是否允许?解:①T0时刻是否安全?工作向量Work.它表示系统可提供给进程继续运行所需要的各类资源的数目资源情况workNeedAllocationWork+AllocationfinishABCABCABCABC进程P0745743010755trueP1332122200532trueP27556003021057trueP3532011211743trueP4743431002745true2从表中可找出一个序列{P1、P3、P4、P0、P2}使各进程顺序地一个个地执行完成。安全序列为{P
3、1、P3、P4、P0、P2},T0时刻系统是安全的。②T0之后的T1时刻P1请求资源Request1(1,0,2)可否允许?Request1(1,0,2)≤Need1(1,2,2),P1请求在最大需求范围内。Request1(1,0,2)≤Available(3,3,2),可用资源可满足P1请求需要。34.银行家算法之例试探把要求的资源分配给进程P1并修改有关数据结构的数值:•Available(2,3,0)=Available(3,3,2)-Request1(1,0,2);•Need1(0,2,0)=Need1(1,2,2)-Request1(1,0,
4、2);•Allocation1(3,0,2)=Allocation1(2,0,0)+Request1(1,0,2);利用安全性算法检查试探将资源分配后状态的安全性如下:4资源情况workNeedAllocationWork+AllocationfinishABCABCABCABC进程P0745743010755trueP1230020302532trueP27556003021057trueP3532011211743trueP4743431002745true因为先分配资源给P1进程符合按安全序列{P1、P3、P4、P0、P2}分配资源,所以试探将资源分配
5、给进程P1后的状态是安全的,可将资源分配给进程P1。54.银行家算法之例③T1之后的T2时刻P4请求资源Request4(3,3,0)是否允许?Request4(3,3,0)≤Need4(4,3,1),P4请求在最大需求范围内。Request4(3,3,0)≤Available(2,3,0)不成立,即可用资源暂不能满足P4请求资源需要,P4阻塞等待。P4请求资源Request4(3,3,0)不允许。64.银行家算法之例④T2之后的T3时刻P0请求资源Request0(0,2,0)是否允许?Request0(0,2,0)≤Need0(7,4,3);Req
6、uest0(0,2,0)≤Available(2,3,0);系统暂时先假定可为P0分配资源,并修改有关数据,如下图所示。74.银行家算法之例进行安全性检查:可用资源Available(2,1,0)已不能满足任何进程的需要,故系统进入不安全状态,此时系统不分配资源。如果在银行家算法中,把P0发出的请求向量改为Request0(0,1,0),系统是否能将资源分配给它,请读者考虑。8