银行家算法例子答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、设系统中有3种类型的资源(A,B,C)和5个进程P1、P
2、
P3、P4、P5,A资源的数量为17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态见下表(T0时刻系统状态表)所示。
系统采用银行家算法实施死锁避免策略。(12分)
T0时刻系统状态表
最大资源需求量已分配资源数量
A B C A B C
P1 5 5 9 2 1 2
P2 5 3 6 4 0 2
P3 4 0 11 4 0 5
P4 4 2 5 2 0 4
P5 4 2 4 3 1 4
T0时刻系统状态表
P2请求资源(0,3,4)(0,1,1)
(1)T0时刻是否为安全状态?若是,请给出安全序列。
(2)在T0时刻若进程P2请求资源(0,3,4),是否能实施资源
分配?为什么?
(3)在(2)的基础上,若进程P4请求资源(2,0,1),是否
能实施资源分配?为什么?
(4)在(3)的基础上,若进程P1请求资源(0,2,0),是否
能实施资源分配?为什么?
答:当前的系统状态描述为:
⎥⎥⎥
⎥⎥
⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡=42
4
5241104
63
5955C ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=413402
504
204212
A ⎥⎥⎥⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎢
⎢⎣⎡=-011
122
600
431743
A C
()20517=R ()332=V
(1)
在T0时刻,由于V (2,3,3)大于等于(C-A )中P5所在行的向量(1,1,0),因此V 能满足P5的运行,在P5运行后,系统的状态为:
⎥⎥⎥
⎥⎥
⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡=000
402504
204212
A ⎥⎥⎥⎥⎥
⎥⎦
⎤
⎢⎢⎢⎢⎢⎢⎣⎡=-000122
600
431743
A C ()745'=V
同样的,在P5运行后,V ’(5,4,7)也大于等于C-A 中P4所在的行(2,2,1),则能满足P4的运行。P4运行后,系统的状态为:
⎥⎥⎥
⎥⎥
⎥⎦
⎤⎢⎢⎢⎢⎢⎢⎣⎡=000
000504
204212
A ⎥⎥⎥⎥⎥
⎥⎦
⎤
⎢⎢⎢⎢⎢⎢⎣⎡=-000000
600
431743
A 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的申请超过它所预定的需求。因此,该申请不给予分配。