- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
处理机调度与死锁讲义
进程-资源分配图PRAG(1)(Process Resource Allocation Graph) 资源分配图是描述进程申请资源和资源分配情况的关系模型图,它可以直观地检测系统是否会死锁。在资源分配图中,有以下规定: (1)圆表示一个进程。 (2)方框表示一个资源类,其中的圆点表示该类型资源中的单个资源。 (3)从资源指向进程的箭头表示资源被分配给了这个进程。 (4)从进程指向资源的箭头表示进程申请一个这类资源。 资源分配图的一个例子 R1 R2 . .. . P1 P2 P3 R3 R1 R2 P2 P3 P4 P1 资源分配图的另一个例子 设资源类Rj有资源Wj个,用|(Rj,Pi)|表示Rj分配给进程Pi的资源个数,用|(Pi, Rj)|表示进程Pi申请Rj的资源个数。一张合理的资源分配图应该代表系统中某个时刻进程对资源的申请和占有状态,因此,它应当满足以下两个条件: (1)资源Rj分配给各进程的资源数目不能大于Wj,即对于各类资源Rj的分配应满足: ≤ Wj (2)任何一个进程Pi对某类资源Rj的申请量和已分配数量之和,不应大于该类资源的总数Wj,即 |(Pi, Rj)|+ |(Rj, Pi)| ≤ Wj 简化进程-资源分配图检测系统是否处于死锁状态(1) (1)检查图中无环路,如果没有,系统不会发生死锁,结束检测;如果有环路,进行第(2)步。 (2)若环路中涉及的每个资源类中仅有一个资源,则系统一定死锁;若每个资源类中有多个资源,进行第(3)步。 (3)在环路中查找非阻塞且非独立的进程Pi,应满足: |(Pi, Rj)|+ ≤ Wj 即它可以在有限的时间里将获得申请的资源执行完毕,从而释放进程占有的所有资源。找到后,把与该进程相连的所有有向边去掉,形成孤立节点。反复执行步骤(3),直到没有进程可被化简。 R1 R2 P2 P1 简化进程-资源分配图检测系统是否处于死锁状态(2) 如果能在进程-资源分配图中消去此进程的所有请求边和分配边,成为孤立结点。经一系列简化,使所有进程成为孤立结点,则该图是可完全简化的;否则则称该图是不可完全简化的。 系统为死锁状态的充分条件是:当且仅当该状态的进程-资源分配图是不可完全简化的。该充分条件称为死锁定理。 引理:一个给定的进程-资源分配图的全部化简序列导致同一不可化简图。 R1 R2 . .. . P1 P2 P3 R3 资源分配图的化简eg(1) 发生死锁 R1 R2 P2 P3 P4 P1 资源分配图的化简eg(2) R1 R2 P2 P3 P4 P1 无死锁 资源分配图的化简eg(3) R1 R2 P2 P1 R1 R2 P2 P1 无死锁 1. 重新启动 简单,代价大,涉及未参与死锁的进程。 2. 撤销进程 环路上占有资源的进程。 (1) 一次性全部撤销;(2) 逐步撤销(优先级,代价函数) 2死锁的解除(1) 死锁的解除(2) 3. 剥夺资源 在死锁时,系统可以保留进程,只剥夺死锁进程占有的资源,直到解除死锁。 4. 进程回退 系统可以根据保留的历史信息,让死锁的进程从当前状态向后回到某种状态,直到死锁解除。结合检查点(checkpoint)或回退(rollback)机制实现。 产生死锁的因素 不仅与系统拥有的资源数量有关,而且与资源分配策略,进程对资源的使用要求以及并发进程的推进顺序有关。 3.6.2死锁防止(1) 系统形成死锁的四个必要条件 互斥条件:进程互斥使用临界资源 占有和等待条件(部分分配条件):申请新资源时不释放已占有资源 不剥夺条件:一个进程不能抢夺其他进程占有的资源 循环等待条件(环路条件):存在循环链 死锁防止(2) 破坏第一个条件 使资源可同时访问而不是互斥使用, 破坏第三个条件 采用剥夺式调度方法, 当进程在申请资源未获准许的情况下,如主动释放资源(一种剥夺式),然后才去等待。 破坏第二个条件或第四个条件 比较实用的死锁防止方法。 死锁防止(3)静态分配策略(破坏条件2) 静态分配是指一个进程必须在执行前就申请它所要的全部资源,并且直到它所要的资源都得到满足后才开始执行。 死锁的防止(4)采用层次分配策略(破坏条件4) 资源被分成多个层次 当进程得到某一层的一个资源后,它只能再申请较高层次的资源 当进程要释放某层的一个资源时,必须先释放占有的较高层次的资源 当进程得到某一层的一个资源后,它想申请该层的另一个资源时,必须先释放该层中的已占资源 死锁的防止(5)层次策略的变种按序分
您可能关注的文档
最近下载
- 售后服务体系、流程及售后保障措施.docx VIP
- 北师版初中心理健康七年级全一册第一课翻开新的一页开启新学期课.pptx VIP
- 注塑生产排程月计划(ASDJS)自动排程.xls VIP
- QCT484-1999 汽车油漆涂层.pdf VIP
- 《影视后期合成》教案全套项目1--11 初识After Effects--渲染输出.docx VIP
- SAP物料分类账操作详解(S4系统).doc VIP
- 人教版小学数学四年级上册第六单元《用五入法试商的除法》PPT课件.pptx VIP
- 云南硅pu篮球场施工方案.docx VIP
- 学生牛奶糕点配送项目供货保障措施方案.docx VIP
- 课件中国现代文学史下.pptx VIP
文档评论(0)