搜档网
当前位置:搜档网 › 银行家算法例题——四步走解题

银行家算法例题——四步走解题

银行家算法例题——四步走解题
银行家算法例题——四步走解题

银行家算法例题

系统中原有三类资源A B、C和五个进程P1、P2、P3、P4、P5, A资源17,B资源5,C资源20。当前(T0时刻)系统资源分配和进程最大需求如下表。

2、是否可以允许以下请求?

(1) T1 时刻:P2 Request2=(0,3,4)

⑵T2 时刻:P4 Request4=(2,0,1)

(3)T3 时刻:P1 Request仁(0,2,0)

注:T0 T1 T2 T3时刻是前后顺序,后一时刻是建立在前一时刻的基础上。

解:由题设可知Need二Max-Allocation

AvailableA=17-(2+4+4+2+3)=2(原有-分配)

同理AvailableB=3,AvailableC=3

可得TO时刻资源分配表如下所示(表中数据顺序均为 A B C):

1

表:

安全状态

2、判断T1 T2 T3 时刻是否满足进程请求进行资源分配。

(1)T1 时刻,P2 Request2=(0,3,4)

// 第一步判断条件

①满足Request2=(0,3,4)<=Need2(1,3,4)

②不满足Request2=(0,3,4)<=Available(2,3,3) 故系统不能将资源分配给它,此时P 2必须等待。

(2)T2 时刻,P4 Request4=(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) ,找五个进程中Need小于work的进程,比如Need4<=Wor满足,则将P4写在第一行的最前面,同时写出P4的Need 和Allocation ,以此类推)

//第四步在此时刻(T2时刻)存在安全序列{P4,P2,P3,P5,P1},则

满足Request4 请求,将Request4=(2,0,1)分配给P4

(3)T3 时刻,P1 Request 1= (0,2,0)

// 第一步判断条件①满足Request仁(0,2,0)v=Need1(3,4,7)

②满足Request仁(0,2,0)<二Available(2,3,3)

// 第二步修改Need Available、Allocation 的值

Available二Available-Request仁(0,1,2) (T2 时刻基础上)

Allocatio n=Allocatio n1+Request 仁(2,3,0)

Need仁Need1-Request 仁(3,2,7)

//第三步执行安全算法,找安全序列

对于所有Need 均不小于Work(初值是Available

(0,1,2)),找不到安全序列,故系统不能将资源分配给它,P1必须等待。

归纳总结——银行家算法解题总结为四步走: 第一步:判断银行家算法中的条件,看是否满足,如果满足跳转第二

步(判断条件)

①Request i v=Need

②Request i v=Available

第二步:试图分配,修改Need Available、Allocation 的值(修改

NAA

Available二Available-Request i

Allocation i 二Allocation i +Request i

Need =Nee(d-Request i

第三步:执行安全算法,找安全序列(找安全序列)

第四步:找到了安全序列,说明此时系统满足进程R的请求Request i

系统不会进入不安全状态,可以将Request i分配给进程R。(真分配)判断条件 ------------- >修改NAA --------------------- ->找安全序列-------------- > 真分配

相关主题