第3讲死锁为什么会产生死锁.pptVIP

  • 9
  • 0
  • 约3.57千字
  • 约 21页
  • 2016-10-12 发布于天津
  • 举报
第3讲死锁为什么会产生死锁

* * 假定系统有n个进程P1,P2,…,Pn和m种类型资源R1,R2,…,Rm建立资源分配表S和进程等待表W,分别如表3-1和表3-2所示,其中aij表示分配给进程Pi的资源Rj的数目,bij表示进程Pi请求资源Rj的数目。另外为每一个进程设置一个等待资源计数器C1,C2,…,Cn,它们表示引起相应进程被阻塞的资源数目,将未阻塞的进程组成一个表L(或队列)。 * * * 单击此处编辑母版标题样式 第3讲 死锁 为什么会产生死锁? 如何解决? 17 资源分配与调度——死锁 什么是死锁 在两个或多个并发进程中,如果每个进程持有某种资源而又都等待着别的进程释放它或它们现在保持着的资源,否则就不能向前推进。这组进程互相等待对方释放资源,都不能向前推进,称这一组进程产生了死锁。 为什么会发生死锁? 系统资源不足 进程推进顺序非法 解决办法 预防死锁 破坏四个必要条件 避免死锁 检测状态是否安全 检测并解除死锁 19 资源分配与调度——死锁 互斥条件 不剥夺条件 预防死锁 破坏死锁的四个必要条件 涉及的资源是非共享的,即为临界资源 进程所获得的资源在未使用完毕之前,不能被其 他进程强行夺走。 部分分配 (请求与保持) 环路)条件 进程每次申请它所需要的一部分资源。在等待一新 资源的同时,进程继续占用已分配到的资源。 存在一种进程的循环链,链中的每一个进程已获得的资源同时被链中下一个进程所请求 预防死锁 破坏部分分配必要条件(3个) 资源全部分配(静态分配) 在作业调度时为选中的作业分配它所需要的所有资源,当资源一旦分配给该作业后,在其整个运行期间这些资源为它独占。 破坏不剥夺必要条件 剥夺 破坏环路必要条件 资源的有序分配 系统中所有资源都给定一个唯一的编号,所有分配请求必须以上升的次序进行。当遵守上升次序的规则时,若资源可用,则予以分配;否则,请求者等待。 资源静态分配法可以预防死锁的发生,它们使死锁四个条件中的( )不成立。 A.互斥条件 B.请求和保持条件 C.不可剥夺条件 D.环路等待条件 解决办法 预防死锁 破坏四个必要条件 避免死锁 检测状态是否安全 检测并解除死锁 避免死锁 在分配资源之前检测系统状态是否安全,安全就分配,不安全就不分配。 安全状态 所谓安全状态,是指系统能按某种进程顺序,来为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个序列,则称系统处于不安全状态。 安全序列     我们通过一个例子来说明安全性。假定系统中有三个进程P1、P2和P3,共有12台磁带机。进程P1总共要求10台磁带机,P2和P3分别要求4台和9台。假设在T0时刻,进程P1、P2和P3已分别获得5台、2台和2台磁带机,尚有3台空闲未分配,如下表所示: 安全状态之例 安全吗? 这个状态是否安全? 安全吗? 多资源 安全吗? 避免死锁 银行家算法 允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程;否则,令进程等待。 例子:某时刻资源分配图如下 在银行家算法的例子中,依次有两个请求 Request1(1,0,2) Request4(3,3,0) 问系统可否将资源分配给它 进程 MAX A B C Allocation A B C Need A B C Available A B C P0 7 5 3 0 1 0 7 4 3 3 3 2 P1 3 2 2 2 0 0 1 2 2 P2 9 0 2 3 0 2 6 0 0 P3 2 2 2 2 1 1 0 1 1 P4 4 3 3 0 0 2 4 3 1 怎么判断? Requestneed,requestavailable 是不是安全? 3 0 2 0 2 0 2 3 0 解决办法 预防死锁 破坏四个必要条件 避免死锁 检测状态是否安全 检测并解除死锁 死锁检测 检测算法如下: (进程资源图的化简 (1) 把未阻塞(Ci=0)的进程Pi记录在L表中(其全部资源请求已得到满足的进程); (2) 从L表中选择一进程,根据资源分配表S释放分配给该进程的所有资源; (3) 由进程等待表W依次检查和修改需要该进程释放资源的每一个进程的等待计数器Cj; (4) 若Cj=0,则表示该进程所请求的资源已得到满足,不再阻塞,将Pj记入L表中; (5)再从L表中选取另一进程,重复上述操作; (6) 若所有的进程都记入L表中,则系统初始状态为非死锁状态,否则为死锁状态。 解除死锁 撤销死锁中的进程,释放出资源。 考虑撤销什么样的进程 进程优先级 进程运行代价(已运行的%) 进程类型

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档