锁与饥饿.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
锁与饥饿

复习举例 1、在操作系统的进程管理中,若系统中有10个进程使用互斥资源R,每次只允许3个进程进入互斥段(临界区),则信号量S的变化范围是__(1)__;若信号量S的当前值为-2,则表示系统中有_(2)个正在等待该资源的进程。?? (1)A.-7~1??? B.-7 ~ 3??? C.-3 ~ 0?? ?D.-3 ~ 10?? (2)A.0??? B.1?? ?C.2??? ?D.3 ? 2、若在系统中有若干个互斥资源R,6个并发进程,每个进程都需要2个资源R,那么使系统不发生死锁的资源R的最少数目为()。? A.6? B.7? C.9? D.12 3、设系统中有R类资源m个,现有n个进程互斥使用。若每个进程对R资源的最大需求为w,那么当m、n、w取下表的值时,对于下表中的a~e五种情况,(x)两种情况可能会发生死锁。对于这两种情况,若将(y),则不会发生死锁。? a?b?c?d?e m?2?2?2?4?4? n?1?2?2?3?3?? w?2?1?2?2?3? 死锁 deadlock 第五章 死锁与饥饿 死锁的概念 死锁的类型 死锁的条件 死锁的处理 资源分配图 第五章 死锁与饥饿 5.1 死锁的概念 死锁定义 一组进程中的每一个进程,均无限期地等待此组进程中某个其他进程占有的、因而永远无法得到的资源,这种现象称为进程死锁。 由定义得到的结论 几个有用的结论: 参与死琐的进程至少有二个; 每个参与死锁的进程均等待资源; 参与死锁的进程中至少有两个进程占有资源; 死锁进程是系统中当前进程集合的一个子集。 5.2 死锁的类型 资源竞争引起的死锁 死锁的核心问题 进程通信引起的死锁 在一个基于消息的系统中,进程P1等待P2发来的消息,P2等待P3发来的消息,P3等待P1发来的消息,形成一个进程等待环路; 其他原因引起的死锁 After You/ After You问题 5.3 死锁的条件 必要条件(四个条件同时满足死锁) 资源独占(mutual exclusion) 一个资源每次只能给一个进程使用; 不可抢占(non-preemption) 资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放; 保持申请(hold and wait) 一个进程在申请新的资源的同时保持对原有资源的占有; 循环等待(circular wait) 存在一个进程等待环路; ※破坏上述任意一个条件可以消除死锁。 5.4 死锁的处理 死锁预防(deadlock prevention)-静态 死锁避免(deadlock avoidance)--动态 死锁检测(deadlock detection) 死锁恢复(deadlock recovery) 5.5 资源分配图 5.5 资源分配图 例子(无环路,无死锁) 例子(有环路,有死锁) 例子(有环路,无死锁) 资源分配图的约简 死锁定理 5.6 死锁预防 对进程有关资源的活动加以限制,所有进程遵循这种限制,即可保证没有死锁发生。 优点:简单,系统不需要做什么。 缺点:对进程的约束,违反约束仍可能死锁。 预防方法: 预先分配法; 有序分配法。 5.6.1 预先分配法 进程:运行前申请所需全部资源; 系统: 能够满足,全部分配, 否则,一个也不分配。 破坏保持申请(hold-and-wait)条件 缺点: 资源利用效率低; 一次提出申请困难。 5.6.2 有序分配法 例子 例子 例子 复习 死锁发生的四个必要条件: 资源独占 不可抢占 保持申请 循环等待 环路是否为死锁的充分必要条件; 死锁定理:系统S为死锁状态的充分必要条件是S的资源分配图不可完全约简。 死锁的预防是事先对申请资源的进程加以限制; 5.7 死锁避免 银行家算法(Cont.) 银行家算法(Cont.) 资源分配 安全性检测算法 银行家算法例子 银行家算法例子 银行家算法的保守性 银行家算法的保守性 5.8 死锁的发现 5.8.1 死锁检测算法 死锁例子 5.8.2 死锁检测时刻 5.9 死锁的恢复 5.10 鸵鸟算法 视而不见 Pro: 工程师观点 死锁发生频率其它故障引起的系统瘫痪的频率 死锁处理代价 危害 Cont: 数学家观点:必须处理,无论代价如何 目前系统实际如此 Eg. UNIX proc结构(50 and up) 5.11 有关问题的讨论 关于充要性算法 已知进程关于资源活动序列 困难: 程序中的分支与循环 复杂度高——无完美死锁处理方法 生灭(消耗性)资源问题 消息:可以通过超时的方法来解决 消耗性资源与可复用资源并存 关于可剥夺资源问题 处理器和存储器 关于两阶段锁 增长阶段有可能死锁 5.12

文档评论(0)

haowendangqw + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档