轻松掌握操作系统概念之-第四讲调度与死锁.pptVIP

轻松掌握操作系统概念之-第四讲调度与死锁.ppt

  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文档。上传文档
查看更多
轻松掌握操作系统概念之-第四讲调度与死锁

第四讲之二 死锁 死锁研究的教学 目的与要求:了解死锁的定义,掌握死锁预防,了解死锁避免,死锁检测,死锁恢复的方法。 重点与难点:死锁预防法则的使用,死锁避免和检测算法。 死锁研究的主要内容 死锁预防 死锁避免 死锁检测 死锁恢复 4.3 死锁概念 一、死锁定义 二、死锁产生的原因 三、死锁发生的条件 四、死锁判断 ★死锁概念的引入 日常生活中死锁的例子 交通阻塞 操作系统中死锁的例子 竞争外部设备 竞争辅存空间 PV操作使用不当 使用资源出现循环等待 ★一、什么是死锁? 是指在一个进程集合中的每一个进程都在等待仅由该集合中的另一个进程才能引发的事件而无限僵持下去的局面。 注意:“无限僵持”或“永久僵持”才叫死锁,如果这种僵持局面是暂时的,或可以自行解除的不叫死锁。 二、死锁产生的原因是什么? (1)资源有限 如上例:竞争外部资源、竞争辅存空间。 (2)操作不当。 如上例:P、V操作使用不当,信号相互循环等待。 三、死锁发生的条件是什么? ★出现死锁的系统必须同时满足下列四个必要条件 互斥:必须存在需要互斥使用的资源; 占有并等待:一定有占有资源而又等待其他资源的进程; 非剥夺(非抢占):系统中进程占有的资源未主动释放时不可以剥夺; 循环等待:进程集合{P0, P1, ……, Pn},Pi等待Pi+1,Pn等待P0。 注意:这四个条件只是死锁的必要条件,而不是充分条件,也不是充要条件。 例1:靠垫脚石过河如果发生死锁,则以下四个条件成立: ①互斥:垫脚石只供一个过河,人们互相争用垫脚石。 ②占用并等待:过河者占用垫脚石又等待对方放弃占有的垫脚石。 ③非抢占:不允许一个人在别人过河时走到一旁的歇脚石上(撤离到安全态),或强行要求过河的另一方撤回(完全撤离)。 ④循环等待:双方都互相等待对方放弃过河,互不相让。 问题:在过河问题中,如果上述四个条件成立, 一定死锁吗? 不一定,如果不是“永久僵持”下去就不是死锁,只是临时性阻塞。 例2:交通死锁发生,则以下四个条件成立: ①互斥。每条道路只能被一辆车占用。 ②占用并等待。每辆车都占用了一段道路,并等待其前方的道路被释放。 ③非抢占。资源不可抢占。单行线,汽车不能抢路超车。 ④循环等待。每辆车都等待着前方的汽车把路让出来,且形成了一个环路。 问题:在交通问题中,如果上述四个条件成立, 一定死锁吗? 不一定,如果不是“永久僵持”下去就不是死锁,只是临时性阻塞。 四、如何判断死锁? 方法:用资源分配图判断死锁 (一)资源分配图构成 请求边:Pi?Ri,表示进程Pi等待一个Ri类型的资源;(进程指向资源) 分配边:Ri?Pi,表示进程Pi占有一个Ri类型的资源。(资源指向进程) 圆圈:表示进程; 方框:表示资源; 方框内的圆点:表示该类资源的资源数量。 示图: 示图: (二)示例 4.2 死锁预防(防止) 一、什么是死锁预防 二、死锁预防的思想 三、死锁预防策略 4.2 死锁预防 一、死锁预防 通过破坏死锁存在的某个必要条件,以确保系统不会出现死锁。 4.2 死锁预防 二、死锁预防的思想 若把死锁的4个必要条件记做: 互斥----C1 占用并等待----C2 非抢占----C3 循环等待----C4 把死锁记做D。则有下列逻辑公式成立: D - C1∧C2∧C3∧C4,则有: !C1∨!C2∨!C3∨!C4 -!D 以上公式说明,只要有一个必要条件不成立,系统就能保证不出现死锁,这是死锁防止的思想基础。 即通过破坏互斥条件或破坏占用并等待条件或破坏非抢占条件或破坏循环等待条件,系统就不会死锁。 三、死锁预防策略 (一)破坏互斥条件策略 让资源都能共享使用 (但有些资源必须互斥,实质上所有资源最终必须互斥使用,这一方法不切实际)。 (二)破坏占有且等待条件策略 1、预分资源策略 将进程所需要的资源一次性分给进程,要么没分到一个资源,要么全部满足(适合廉价资源的分配,如外存空间分配)。 2、“空手”申请资源策略 进程在下一轮申请资源时,释放所占有的全部资源 ,申请的资源满足一次时间片运行,用完后全部释放,下一次运行时重新申请。 (三)破坏非剥夺条件策略 1、抢占申请者的资源 当进程Pi申请Ri类资源时,若有则分配,若没有则剥夺Pi占有的所有资源。 如: 2、抢占等待者的资源。 当进程Pi申请Ri类资源时,若有则分配,若无则剥夺处于等待状态且占有Ri类资源的进程占有Ri类资源的资格,将抢来的资源分配给Pi。 如: (四)破坏循环等待条件策略 1、资源有序分配策略 给每类资源编号(如打印机为1,磁带机为2),进程只能按序号由小到大的顺序申请资源,同类资源一次申请完,若不满足则拒绝分配。 对资源请求作了这样的限制后,

文档评论(0)

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

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

1亿VIP精品文档

相关文档