网站大量收购闲置独家精品文档,联系QQ:2885784924

第3章 处理机调度及死锁A.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 处理机调度与死锁A 本章知识点: 3.5 产生死锁的原因和必要条件 3.6 预防死锁的方法 3.7 死锁的检测与解除 死锁问题概述 死锁是由于进程间相互竞争系统资源或通信而引起的一种阻塞现象。如果操作系统不采取特别的措施,这种阻塞将永远存在,最终可能导致整个系统处于瘫痪状态。因此,死锁问题是操作系统中需要考虑的重要问题。 可重用资源 下面是一个使用可重用资源而发生死锁的例子。两个进程P1和P2竞争必须互斥访问的磁盘文件D和磁带机T,程序重复地执行以下操作: P1 P2 repeat repeat … … Request(D); Request(T); … … Request(T); Request(D); … … Release(T); Release(D); … … Release(D); Release(T); … … forever forever 消耗型资源 下面是使用消耗型资源而发生死锁的例子: P1 P2 … … Receive(P2,M); Receive(P1,Q); … … Send(P2,N); Send(P1,R); 如果Receive阻塞就会发生死锁。 死锁 定义:一组进程中的每个进程均等待此组进程中某一其它进程所占有的, 因而永远无法得到的资源, 这种现象称作进程死锁. 当死锁发生后, 参与死锁的进程将一直等待下去, 除非有来自参与死锁进程之外的某种干预. 关于死锁有如下几个有用的结论 (1) 参与死锁的进程个数至少为二; (2) 参与死锁的所有进程均等待资源; (3) 参与死锁的进程至少有两个占有资源; (4) 参与死锁的进程是系统中当前正在运行进程之集合的一个子集. 死锁的类型 1 竞争资源引起的死锁 这种类型的死锁是由于进程争夺使用系统中有限的资源而引起的, 因而称作竞争资源引起的死锁, 2 进程通讯引起的死锁 假设在一个基于消息的系统中, 进程P1等待进程P2发来的消息, 进程P2等待进程P3发来的消息, 进程P3等待进程P1发来的消息, 如此三个进程均无法继续向前推进, 亦即也发生了死锁. 3 其它原因引起的死锁 除上述所介绍的死锁类型之外, 尚有其它类型的死锁. 例如: 假设有一扇门, 此门较小, 一次只能通过一个人. 又设有两位先生M1和M2, 他们都要通过这扇门. 显然, 门相当一个独占型资源. 如果M1和M2竞争地使用这一资源, 则他们都能够通过. 但是假如他们都很谦虚, 在门口处M1对M2说“您先过”, M2对M1说“您先过”, 则二者均无法通过, 造成僵持. 这就是“After You/After You”问题. 如果程序设计不合理, 也可能会发生类似的现象, 广义上亦称为死锁. 产生死锁的条件 假设死锁是由于进程竞争资源而引起的,我们下面给出死锁发生的四个必要条件,这四个条件是Coffman首先提出的,所以也称为Coffman条件: (1) 资源独占(mutual exclusion): 一个资源在同一时刻只能分配给一个进程. 如果某一进程申请某一资源, 而该资源正被另外某一进程所占有, 则申请者需等待, 直到占有者释放该资源; (2) 不可剥夺(no-preemption): 资源申请者不能强行地从资源占有者手中夺取资源. 即资源只能由其占有者在使用完后自愿地释放; (3) 保持申请(hold

文档评论(0)

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

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

1亿VIP精品文档

相关文档