cha4调度与死锁.ppt

  1. 1、本文档共86页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 第一个条件不好破坏(受到资源本身的限制),一般采用破坏第三第四两个条件之一: 静态资源分配法:破坏占有切等待条件! 有序资源分配法:破坏循环等待条件! * 采用这种方法时,系统规定所有进程在开始运行之前,都必须一次性的申请其在整个运行过程所需的全部资源。此时若系统有足够资源就分配给该进程,该进程在运行期间不会提出资源要求,从而摒弃了“请求”条件。若系统没有足够资源分配给它,就让该进程等待。因而也摒弃了“保持”条件,从而可避免发生死锁。 * 此方法规定,系统将所有资源按类型进行线性排队,并赋予不同的序号。所有进程对资源的请求必须严格按照资源序号递增的次序提出,这样在所形成的资源分配图中,不可能会出现环路,因而摒弃了“环路等待”条件。 * 所谓安全状态,是指系统能按某种进程顺序( P0,P1,P2,…,Pn ),来为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利地完成。如果系统无法找到这样一个安全序列,则称系统处于不安全状态。 虽然并不是所有的不安全状态都是死锁状态,但当系统进入不安全状态后,便可能进而进入死锁状态;反之只要处于安全状态就不会死锁。避免死锁的实质是:系统在进行资源分配时,如何使系统不进入不安全状态。 * 系统死锁可利用资源分配图来描述。该图由表示进程的圆圈和表示一类资源的方框组成,其中方框中的一个点代表一个该类资源,请求边是由进程指向方框中的rj,而分配边则应始于方框中的一个点。如图所示。 * 我们可以对资源分配图加以简化的方法,来检测系统处于某状态时是否为死锁状态。 * n个进程共享m个资源,每个进程最多申请x个资源,则绝对不会死锁的条件是: n(x-1)+1=m 4.5.3 利用银行家算法避免死锁 银行家算法 设Requesti是进程Pi的请求向量,如果Requesti [j]=K,表示进程Pi需要K个Rj类型的资源。当Pi发出资源请求后,系统按下述步骤进行检查: Pi请求资源 Request[I]?Need[I] 请求超量,错返 Request[I]?Available 不满足,等待 Available:=Available-Request[I] Allocation[I]:=Allocation[I]+Request[I] Need[I]:=Need[I]-Request[I] 安全 确认,分配完成 Available:=Available+Request[I] Allocation[I]:=Allocation[I]-Request[I] Need[I]:=Need[I]+Request[I] pi等待 F T F T T F 银行家算法 案例 4.5.3 利用银行家算法避免死锁 安全性算法 (1)设置两个向量: 工作向量work:表示系统可提供给进程继续运行的各类资源数目,在执行安全算法开始时,work:=Available; Finish:它表示系统是否有足够的资源分配进程,使之运行完成。开始时先做Finish[i]:=false;当有足够资源分配给进程时,再令Finish[i]:=true。 安全性检测算法 F Work:=Available; Finish:=false; 有满足条件的j: Finish[j]=false Need[j]?Work Finish[j]=true; Work:=Work+Allocation[j] T ?j ,finish[j]=true T F 安全 不安全 4、银行家算法之例 假定系统中有四个进程{P1,P2,P3,P4}和三类资源{A,B,C},各种资源的数量分别为10、4、7,在T0时刻的资源分配情况如下所示: 资源情况 进程 Max A B C Allocation A B C Need A B C Available A B C P1 P2 P3 P4 3 2 2 9 0 2 2 2 2 4 3 3 2 0 0 3 0 2 2 1 1 0 0 2 1 2 2 6 0 0 0 1 1 4 3 1 3 3 2 资源情况 进程 Work A B C Allocation A B C Allocation +Work Finish (1)T0时刻的安全性: 4、银行家算法之例 资源情况 进程 Max A B C Allocation A B C Need A B C Available A B C P1 P2 P3 P4 3 2 2 9 0 2 2 2 2 4 3

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档