银行家算法例子+答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、 设系统中有3种类型的资源(A ,B ,C )和5个进程P1、P
2、P
3、P
4、P5,A 资源的数量为17,B 资源的数量为5,C 资源的数量为20。在T 0时刻系统
状态见下表(T 0时刻系统状态表)所示。系统采用银行家算法实施死锁避免
策略。(12分)
T 0时刻系统状态表
(1) T 0时刻是否为安全状态?若是,请给出安全序列。
(2) 在T 0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为
什么?
(3) 在(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?
(4) 在(3)的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?为什么?
答:当前的系统状态描述为:
⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=424524
1104635955C 最大需求⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=413402504204212A (已分配到的) ⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡=-011122600431743A C (还缺的各类资源数量)
()20517=R (系统拥有的资源总量)
()332=V (系统剩余未分配资源)
(1)
在T0时刻,由于V (2,3,3)大于等于(C-A )中P5所在行的向量(1,1,0),因此V 能满足P5的运行,在P5运行后,系统的状态为:
⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=000402
504204212A ⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡=-000122600431743A C ()745'=V 同样的,在P5运行后,V ’(5,4,7)也大于等于C-A 中P4所在的行(2,2,1),则能
满足P4的运行。P4运行后,系统的状态为:
⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=000000
504204212A ⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡=-000000600431743A C ()1147'=V 按照上述同样的方法,P4运行后,P3,P2,P1也能按顺序运行。(备注:考试时需要都写出来)。
因此,在T0时刻,存在安全序列:P5、P4、P3、P2、P1。
T0时刻是安全的。
(2)
P2申请资源(0,3,4),但在C-A (还缺资源数量)中,P2所在行向量是(1,3,
4)。对于资源R1,P2的申请超过它所预定的需求。因此,该申请不给予分配。
(3)
A )P4申请(2,0,1)不超过C-A 中P4所在行的向量(2,2,1)。
B )V (2,3,3)大于等于P4的申请(2,0,1)
C )对P4的申请(2,0,1)进行预分配,预分配后,系统的状态为:
⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=413504
504204212A ⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡=-011020600431743A C ()230=V
可用资源V (0,3,2)大于等于C-A 中P4所在的行(0,2,0),因此可以满足P4的运行。P4运行后,系统的状态为:
⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=413000
504204212A ⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡=-011000600431743A C ()734'=V
同样的方法(考试时需要列出),可计算出存在安全序列:P4,P5,P3,P2,P1。 因此,预分配后系统的状态是安全状态。
对于,P4请求资源(2,0,1),给予分配,分配后的系统新状态为:
⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=424524
1104635955C ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=413504504204212A ⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡=-011020600431743A C
()20517=R
()230=V
(4)
进程P1请求资源(0,2,0)
A )P1申请(0,2,0)不超过C-A 中P1所在行的向量(3,4,7)。
B )V (0,3,2)大于等于P1的申请(0,2,0)
C )对P1的申请(0,2,0)进行预分配,预分配后,系统的状态为:
⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=413504
504204232A ⎥⎥⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡=-011020600431723A C ()210=V
V (0,2,1)不大于等于P1到P5任一进程在C-A 中的向量,因此系统进行预分配后处于不安全状态。
对于P1申请资源(0,2,0),不给予分配。