资源描述:
《银行家算法例题-四步走解题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、银行家算法例题系统中原有三类资源A、B、C和五个进程P1、P2、P3、P4、P5,A资源17,B资源5,C资源20。当前(T0时刻)系统资源分配和进程最大需求如下表。资源进程AllocationMaxABCABCP1212559P2402536P34054011P4204425P53144241、现在系统T0时刻是否处于安全状态?2、是否可以允许以下请求?(1)T1时刻:P2Request2=(0,3,4)(2)T2时刻:P4Request4=(2,0,1)(3)T3时刻:P1Request1=(0,2,0)注:T0T1T2T3时刻是前后顺序,后一时刻是建立在前一时刻的基础上。解:
2、由题设可知Need=Max-AllocationAvailableA=17-(2+4+4+2+3)=2(原有-分配)同理AvailableB=3,AvailableC=3可得T0时刻资源分配表如下所示(表中数据顺序均为ABC):ProcessAllocationMaxNeedAvailableP1212559347233P2402536134P34054011006P4204425221P53144241101、判断T0时刻是否安全,需要执行安全算法找安全序列,过程如下表:WorkNeedAllocationWork+AllocationFinishP4233221204437Tr
3、ueP34370064058312TrueP2831213440212314TrueP51231411031415418TrueP11541834721217520TrueT0时刻能找到一个安全序列{P4,P3,P2,P5,P1},故T0时刻系统处于安全状态。2、判断T1T2T3时刻是否满足进程请求进行资源分配。(1)T1时刻,P2Request2=(0,3,4)//第一步判断条件①满足Request2=(0,3,4)<=Need2(1,3,4)②不满足Request2=(0,3,4)<=Available(2,3,3)故系统不能将资源分配给它,此时P2必须等待。(2)T2时刻,P
4、4Request4=(2,0,1)//第一步判断条件①满足Request4=(2,0,1)<=Need4(2,2,1)②满足Request4=(2,0,1)<=Available(2,3,3)//第二步修改Need、Available、Allocation的值Available=Available-Request4=(0,3,2)Allocation4=Allocation4+Request4=(4,0,5)Need4=Need4-Request4=(0,2,0)//第三步执行安全算法,找安全序列(注解:先写上work,其初值是系统当前进行试分配后的Available(0,3,2)
5、,找五个进程中Need小于work的进程,比如Need4<=Work满足,则将P4写在第一行的最前面,同时写出P4的Need和Allocation,以此类推)WorkNeedAllocationWork+AllocationFinishP4032020405437TrueP2437134402839TrueP383900640512314TrueP51231411031415418TrueP11541834721217520True//第四步在此时刻(T2时刻)存在安全序列{P4,P2,P3,P5,P1},则满足Request4请求,将Request4=(2,0,1)分配给P4。(
6、3)T3时刻,P1Request1=(0,2,0)//第一步判断条件①满足Request1=(0,2,0)<=Need1(3,4,7)②满足Request1=(0,2,0)<=Available(2,3,3)//第二步修改Need、Available、Allocation的值Available=Available-Request1=(0,1,2)(T2时刻基础上)Allocation=Allocation1+Request1=(2,3,0)Need1=Need1-Request1=(3,2,7)//第三步执行安全算法,找安全序列对于所有Needi均不小于Work(初值是Availa
7、ble(0,1,2)),找不到安全序列,故系统不能将资源分配给它,P1必须等待。归纳总结——银行家算法解题总结为四步走:第一步:判断银行家算法中的条件,看是否满足,如果满足跳转第二步(判断条件)①Requesti<=Needi②Requesti<=Available第二步:试图分配,修改Need、Available、Allocation的值(修改NAA)Available=Available-RequestiAllocationi=Allocationi+Reques