ch3-3.6死锁探索.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.6 死锁 3.6.1 死锁的产生 3.6.2死锁的定义 3.6.3死锁的防止 3.6.4 死锁的避免 3.6.5 死锁的检测和解除 3.6.1 死锁的产生和定义 操作系统中的死锁基于如下假定: 任意一个进程要求资源的最大数量不超过系统能提供的最大量 如果一个进程在执行中提出的资源要求能够得到满足,那么它一定能在有限时间内结束 一个资源在任何时刻最多只为一个进程所占有 一个进程申请资源,只在资源得不到满足时才处于等待状态 一个进程结束时释放它所占有的全部资源 系统具有有限个进程和资源 若干死锁的例子(1) 例1进程推进顺序不当产生死锁 设系统有打印机、读卡机各一台,被进程P和Q共享。两个进程并发执行,按下列次序请求和释放资源: 进程P 进程Q 请求读卡机 请求打印机 请求打印机 请求读卡机 释放读卡机 释放读卡机 释放打印机 释放打印机 ? 若干死锁的例子(2) 例2 PV操作使用不当产生死锁 进程Q1 进程Q2 ……… ……… P(S1); P(s2); P(s2); P(s1); 使用r1和r2; 使用r1和r2 V(S1); V(s2); V(S2); V(S1); 若干死锁的例子(3) 例3 资源分配不当引起死锁 若系统中有m个资源被n个进程共享,每个进程都要求K个资源,而m n·K时,即资源数小于进程所要求的总数时,如果分配不得当就可能引起死锁。 若干死锁的例子(4) 例4对临时性资源使用不加限制引起死锁 进程通信使用的信件是一种临时性资源,如果对信件的发送和接收不加限制,可能引起死锁。 进程P1等待进程P3的信件S3来到后再向进程P2发送信件S1;P2又要等待P1的信件S1来到后再向P3发送信件S2;而P3也要等待P2的信件S2来到后才能发出信件S3。这种情况下形成了循环等待,产生死锁。 3.6.2死锁的定义 操作系统中的死锁指:如果在一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的事件,则称一组进程或系统此时发生了死锁。 例如,n个进程P1、P2,…,Pn,Pi因为申请不到资源Rj而处于等待状态,而Rj又被Pi+1占有,Pn欲申请的资源被P1占有,此时这n个进程的等待状态永远不能结束,则说这n个进程处于死锁状态。 ? 产生死锁的因素 不仅与系统拥有的资源数量有关,而且与资源分配策略,进程对资源的使用要求以及并发进程的推进顺序有关。 3.6.3死锁防止(1) 形成死锁的四个必要条件 互斥条件:进程互斥使用资源 部分分配条件:申请新资源时不释放已占有资源 不剥夺条件:一个进程不能抢夺其他进程占有的资源 环路条件:存在一组进程循环等待资源的 死锁防止(2) 破坏第一个条件 使资源可同时访问而不是互斥使用,是个简单的办法,磁盘可用这种办法管理,但有许多资源往往是不能同时访问,所以这种做法许多场合行不通。 死锁防止(3) 破坏第三个条件 采用剥夺式调度方法可破坏第三个条件,但只适用于对主存资源和处理器资源的分配, 当进程在申请资源未获准许的情况下,如主动释放资源(一种剥夺式),然后才去等待,以后再一起向系统提出申请,也能防止死锁。 死锁防止(4) 破坏第二个条件或第四个条件 种种死锁防止办法施加于资源的限制条件太严格,会造成资源利用率和吞吐率低。两种比较实用的死锁防止方法,它们能破坏第二个条件或第四个条件。 死锁防止(5) 静态分配策略(破坏条件2) 静态分配是指一个进程必须在执行前就申请它所要的全部资源,并且直到它所要的资源都得到满足后才开始执行。 死锁的防止(6) 层次分配策略(破坏条件2和4) 资源被分成多个层次 当进程得到某一层的一个资源后,它只能再申请较高层次的资源 当进程要释放某层的一个资源时,必须先释放占有的较高层次的资源 当进程得到某一层的一个资源后,它想申请该层的另一个资源时,必须先释放该层中的已占资源 死锁防止(7) 层次策略的变种按序分配策略 把系统的所有资源排一个顺序,例如,系统若共有n个进程,共有m个资源,用ri表示第i个资源,于是这m个资源是: r1,r2……,rm 规定如果进程不得在占用资源ri(1≤i≤m)后再申请rj(ji)。不难证明,按这种策略分配资源时系统不会发生死锁。 死锁防止(8) 反证法证明按序分配不会产生死锁

您可能关注的文档

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档