- 15
- 0
- 约9.88千字
- 约 16页
- 2017-02-09 发布于重庆
- 举报
银行家算法解决死锁
银行家算法解决死锁问题
设系统中有3种类型的资源(A,B,C)和5个进程P1、P2、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)
T0时刻是否为安全状态?若是,请给出安全序列。
在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为什么?
在(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?
在(3)的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?为什么?
答:当前的系统状态描述为:
//资源最大需求数量 //已分配资源数量 //还需资源数量 //资源总量
//系统可用资源向量
(1)T0时刻是否为安全状态?若是,请给出安全序列。
在T0时刻,由于V(2,3,3)大于等于(C-A)中P5所在行的向量(1,1,0),因此V能满足P5的运行,在P5运行后,系统的状态为:
同样的,在P5运行后,V’(5,4,7)也大于等于C-A中P4所在的行(2,2,1),则能满足P4的运行。P4运行后,系统的状态为:
按照上述同样的方法,P4运行后,P3,P2,P1也能按顺序运行。(备注:考试时需要都写出来)。
因此,在T0时刻,存在安全序列:P5、P4、P3、P2、P1。
T0时刻是安全的。
-------------------------------另外一解法(书中解法)--------------------
执行序列选择:首先选择需求资源总数最少的优先。
Work need Alloc Work_alloc Finish A B C A B C A B C A B C T P5 2 3 3 1 1 0 3 1 4 5 4 7 T P4 5 4 7 2 2 1 2 0 4 7 4 11 T P3 7 4 11 0 0 6 4 0 5 11 4 16 T P2 11 4 16 1 3 4 4 0 2 15 4 18 T P1 15 4 18 3 4 7 2 1 2 17 5 20 T
Finish 都为TRUE
得到在T0时刻,安全序列:P5、P4、P3、P2、P1。
------------------------------另外一解法(书中解法)--------------------
(2)在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为什么?
P2申请资源(0,3,4),但在C-A中,P2所在行向量是(1,3,4)。对于资源R1,P2的申请超过它所预定的需求。因此,该申请不给予分配。
(3)在(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?
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)进行预分配,预分配后,系统的状态为:
可用资源V(0,3,2)大于等于C-A中P4所在的行(0,2,0),因此可以满足P4的运行。P4运行后,系统的状态为:
同样的方法(考试时需要列出),可计算出存在安全序列:P4,P5,P3,P2,P1。
因此,预分配后系统的状态是安全状态。
对于,P4请求资源(2,0,1),给予分配,分配后的系统新状态为:
-------------------------------另外一解法(书中解法)--------------------
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)进行预分配,预分配后,系统的状态为:
Max alloc Need available A B C A B C A B C A B C P1 5 5 9 2 1 2 3 4 7 0 3 2(2
原创力文档

文档评论(0)