1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
os 5

第五章 死锁与饥饿 死锁与饥饿 死锁: 不确定的等待. 可察觉 饥饿: 不必要的等待. 死锁和饥饿都是由于进程竞争资源而引起的 . 5.1 死锁的概念 死锁定义 一组进程中的每一个进程,均无限期地等待此组进程中某个其他进程占有的,因而永远无法得到的资源,这种现象称为进程死锁。 由定义得到的结论 几个有用的结论: 参与死锁的进程至少有二个; 每个参与死锁的进程均等待资源; 参与死锁的进程中至少有两个进程占有资源; 死锁进程是系统中当前进程集合的一个子集。 注:如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃。 5.2 死锁产生的原因 2、PV操作使用不当产生死锁。 设进程Q1和Q2共享两个资源r1和r2,s1和s2是分别代表资源r1和r2能否被使用的信号量时,由于资源是共享的,必须互斥使用,因而初值均为1。 进程Q1 进程Q2 P(S1); P(S2); P(S2); P(S1); 使用r1和r2; 使用r1和r2; V(s1); V(S2); V(s2); V(S1); 3、同类资源分配不当引起死锁 若系统中有m个资源被n个进程共享,当每个进程都要求K个资源,而mn*k时,即资源数小于进程所要求的总数时,如果分配不得当就可能引起死锁。例如,m=5,n=5,k=2,采用的分配策略是为每个进程轮流分配。 5.3 死锁的条件 Coffman条件(必要条件) (1)资源独占(mutual exclusion) 涉及的资源是非共享的,即为临界资源。 (2)不可抢占(non preemption) 进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走。 (3)保持申请(hold-while-applying) 进程每次申请它所需要的一部分资源。在等待一新资源的同时,进 程继续占用已分配到的资源。 (4)循环等待(circular wait) 存在一种进程的循环链,链中的每一个进程已获得的资源同时被链 中下一个进程所请求。 当且仅当上述四个条件同时满足时,死锁发生。 破坏上述任意一个条件可以消除死锁。 5.4 死锁的处理 死锁预防(deadlock prevention)-静态 死锁避免(deadlock avoidance)--动态 死锁检测(deadlock detection) 死锁恢复(deadlock recovery) 5.5 资源分配图 5.5 资源分配图 例子(无环路,无死锁) 例子(有环路,有死锁) 例子(有环路,无死锁) 资源分配图的约简 1、通过对资源分配图进行约简,来判断系统是否处于死锁状态。约简方法如下: (1)寻找一个非孤立且没有请求边的进程节点pi,若无则算法结束; (2)去除所有pi的分配边使pi成为一个孤立节点; (3)寻找所有请求边均可满足的进程pj,将pj的请求边全部改为分配边; (4)转步骤(1)。 若算法结束时,所有节点均为孤点,则称资源分配图是可以完全约简的,否则称为不可完全约简。 系统处于死锁状态的充分必要条件是资源分配图不可完全约简。这一结论称为死锁定理。 5.6 死锁预防 对进程有关资源的活动加以限制,所有进程遵循这种限制,即可保证没有死锁发生。 优点:简单,系统不需要做什么。 缺点:对进程的约束,违反约束仍可能死锁。 预防方法: 预先分配法; 有序分配法。 5.6.1 预先分配法 进程:运行前申请所需全部资源; 系统: 能够满足,全部分配, 否则,一个也不分配。 破坏“保持申请”条件 缺点: 资源利用效率低; 一次提出申请困难。 5.6.2 有序分配法 5.6.2 有序分配法 5.7 死锁避免 死锁避免定义:在系统运行过程中,对进程发出的每一个系统能够满足的资源申请进行动态检查,并根据检查结果决定是否分配资源,若分配后系统可能发生死锁,则不予分配,否则予以分配。 预防死锁的几种策略,会严重地损害了系统性能。因此要施加较弱的限制,从而获得较满意得系统性能来避免死锁。 由于在避免死锁的策略中,允许进程动态地申请资源。因而,系统在进行资源分配之前预先计算资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程;否则,

文档评论(0)

hf916589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档