包头师范学院操作系统原理课件第3章 处理机调度与死锁.pptVIP

包头师范学院操作系统原理课件第3章 处理机调度与死锁.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文档。上传文档
查看更多
* * 第3章 处理机调度与死锁 1检测死锁——资源分配图-4 资源分配图分析: 如果资源分配图中没有环路,则系统中没有死锁,如果图中存在环路则系统中可能存在死锁 如果每个资源类中只包含一个资源实例,则环路是死锁存在的充分必要条件 * * 第3章 处理机调度与死锁 1检测死锁——死锁定理 资源分配图化简: 1)找一个只有分配边的非孤立点进程结点,去掉分配边,将其变为孤立结点。 2)再把相应的资源分配给一个等待该资源的进程,即将某进程的申请边变为分配边。 3)重复以上步骤,若所有进程成为孤立结点,称该图是可完全简化的,否则称该图是不可完全简化的。 死锁定理:死锁状态的充分条件是:当且仅当资源分配图是不可完全简化的。 1. 对单体资源类的死锁检测 ■等待图——资源分配图的变形 从资源分配图中去掉表示资源类的节点,且把相应边折叠在一起得到的。当且仅当等待图中有环路时,系统存在死锁。为了检测死锁,系统需要建立等待图并适时进行修改,还要定期调用收索图中环路的算法。资源分配图和对应的等待图如下: 思考题:等待图是一个有向图、用矩阵存储、设计算法判断该图中是否有环路(死锁) 对多体资源类的死锁检测 ■检测算法 简单地调查尚待完成的各个进程所有可能的分配序列 ① 令Work和Finish分别表示长度为m和n的向量,初始化 Work:=Available;对于i=1, 2,…, n 如果Allocationi≠0,则Finish[i]:=false;否则Finish[i]:=true。 ② 寻找一个下标i,它应满足条件: Finish[i]=false且Requesti≤Work 若找不到这样的i,则转到④。 ③ 修改数据值: Work:=Work+Allocationi Finish[i]=true 转向②。 ④ 若存在某些i(1≤i≤n),Finish[i]=false,则系统处于死锁状态。此外,若Finish[i]=false,则进程pi处于死锁环中。 ■何时调用检测算法取决于两个因素: ①死锁出现的频繁程度; ②有多少个进程受到死锁的影响。 Work:=Available; Finish:=false; 有满足条件的i: Finish[i]=false Request[i]?Work Finish[i]=true; Work:=Work+Allocation[i] T ?i ,finish[i]=true T F F 无死锁 ●死锁检测时刻:何时进行死锁检测,主要取决于两个因素: 死锁发生频度和死锁所涉及的进程数。通常在以下时刻进行死锁检测: 1. 进程等待时检测:进程发出资源请求,不能立即满足而等待,可能发生死锁。开销大。发现早,恢复代价小。 2. 定时检测: 3. 资源(eg. CPU)利用率下降时检测。 如45%时 ●在允许发生死锁的系统中,必须有对死锁进行检测的方法。 死锁的检测通常是定时进行的,时间间隔的选择很重要。选择的间隔小,死锁检测程序的执行会增加系统开销,选择的间隔大,死锁发生了却不能及时检测出来。 ●为了检测死锁,系统必须①保存有关资源的请求和分配信息,②提供 一种算法,利用这些信息来检测系统是否已进入死锁状态 。 ●死锁定理 -资源分配图简化方法 -死锁定理:S为死锁状态的充分条件是:当且仅当S状态资源分配图是不可完全简化的。下图 2 解除死锁 基本思想:与检测死锁相配套,用于将进程从死锁状态解脱出来。 基本思想是撤消或挂起一些进程。以回收一些资源分配给处于阻塞状态的进程,使之转为就绪状态。 实现难度大,但可获得较好的资源利用率和系统吞吐量。 基本方法 * * 第3章 处理机调度与死锁 解除死锁-基本方法 死锁解除常用的方法: 1)资源剥夺法: 临时性地把资源从当前占有它的进程那里拿过来(选择代价小的进程剥夺),分给另外某些进程,直至死锁环路被打破。 2)撤销进程法:终止所有的死锁进程。 一次终止一个进程,直至消除死锁环路。 如何确定哪个进程将被终止,一般要考虑以下6种因素: ① 进程的优先级。 ② 进程已计算了多长时间,该进程在完成预定任务之前还要计算多长时间。 ③ 该进程使用了多少和什么类型的资源(例如,这些资源可简单地抢占吗?) ④ 为完成任务,它还需要多少资源? ⑤ 有多少个进程被终止? ⑥ 这个进程是交互式进程,还是批处理进程? 3)进程回退:通过回退执行实现恢复,回退到未发生死锁的某个点 由系统管理员做出安排,定期对系统中各个进程进行检查,并将检查点的有关信息(如进程

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档