银行家算法解决死锁.docVIP

  • 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)

1亿VIP精品文档

相关文档