1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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死锁的定义 一组进程中的每一个进程,均无限期地等待此组进程中某个其他进程占有的资源,因而永远无法得到的资源,这种现象称为进程死锁。 ? 3.6.3死锁的处理 形成死锁的四个必要条件: 互斥条件:进程互斥使用资源 部分分配条件:申请新资源时不释放已占有资源 不剥夺条件:一个进程不能抢夺其他进程占有的资源 环路条件:存在一组进程循环等待资源的 破坏上述任意一个条件可以消除死锁。 死锁预防 破坏第一个条件:互斥条件 使资源可同时访问而不是互斥使用,是个简单的办法,磁盘可用这种办法管理,但有许多资源往往是不能同时访问,所以这种做法许多场合行不通。 死锁预防 破坏第三个条件:不剥夺条件 采用剥夺式调度方法可破坏第三个条件,但只适用于对主存资源和处理器资源的分配。 当进程在申请资源未获准许的情况下,如主动释放资源(一种剥夺式),然后才去等待,以后再一起向系统提出申请,也能防止死锁。 死锁预防 破坏第二个条件或第四个条件 种种死锁防止办法施加于资源的限制条件太严格,会造成资源利用率和吞吐率低。两种比较实用的死锁防止方法,它们能破坏第二个条件或第四个条件。 死锁预防 静态分配策略(破坏条件2) 静态分配是指一个进程必须在执行前就申请它所要的全部资源,并且直到它所要的资源都得到满足后才开始执行,也叫预先分配策略。 死锁的预防 层次分配策略(破坏条件2和4) 资源被分成多个层次 当进程得到某一层的一个资源后,它只能再申请较高层次的资源 当进程要释放某层的一个资源时,必须先释放占有的较高层次的资源 当进程得到某一层的一个资源后,它想申请该层的另一个资源时,必须先释放该层中的已占资源 死锁预防 层次策略的变种:按序分配策略 把系统的所有资源排一个顺序,例如,系统若共有n个进程,共有m个资源,用ri表示第i个资源,于是这m个资源是: r1,r2……,rm 规定如果进程在占用资源ri(1≤i≤m)后不能再申请rj(ji)。 3.6.4死锁的避免 银行家算法 银行家拥有一笔周转资金 客户要求分期贷款,如果客户能够得到各期贷款,就一定能够归还贷款,否则就一定不能归还贷款 银行家应谨慎的贷款,防止出现坏帐 用银行家算法避免死锁 操作系统(银行家) 操作系统管理的资源(周转资金) 进程(要求贷款的客户) 单种资源的银行家算法 对每个进程的申请进行检查,看是否会导致不安全状态。若是,则不满足该请求;否则便满足。 进程的安全性检查的方法是看它是否有足够的资源能满足其他某个进程欲申请的资源(该申请资源数最接近),如此反复下去。如果所有投资最终都被收回,则该状态是安全的,最初的请求可以批准。 4个客户每个都有一个贷款额度 一个状态被称为是安全的 条件是存在一个状态序列能够使所有的客户均得到其所有的贷款。 图(b)状态是

文档评论(0)

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

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

1亿VIP精品文档

相关文档