- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.5产生死锁的原因和必要条件 3.5.1产生死锁的原因。 1、竞争资源引起死锁。 1)可剥夺(CPU、内存)和非剥夺性(打印机,磁带机)资源 2)竞争非剥夺性资源——可造成死锁 p1 p2 R1 R2 图3-13I/O设备共享时的死锁情况 3.5产生死锁的原因和必要条件 3)竞争临时性资源 临时性资源是指由一个进程产生,被另一个进程使用一段时间后便无用的资源。 P1 P3 S3 S1 P2 S2 图3-14进程之间通信时的死锁 2、进程推进顺序不当引起死锁。 2 1 3 D P2Req(R2) P2Req(R1) P1Req(R1) P1Req(R2) P2Rel(R2) P2Rel(R1) P1Rel(R1) P1Rel(R2) 4 图3-15进程推进顺序对死锁的影响 3.5.2 产生死锁的必要条件 1.互斥条件(资源的临界性) 2.请求和保持条件 3.不剥夺条件 4.环路等待条件 3.5.3处理死锁的基本方法 1.预防死锁: 破坏4个条件之一:有效,使资源利用率低。 2.避免死锁:防止进入不安全态。 3.检测死锁:检测到死锁再清除。 4.解除死锁:与“检测”配套。 3.6 死锁预防和避免 3.6.1 死锁预防 1、互斥条件是资源固有属性,不能避免。 2、摒弃请求和保持条件 全分配,全释放(AND同步p52) 优点:简单且安全 缺点:(1)资源严重浪费 (2)延迟进程运行 3、摒弃“不剥夺”条件 增加系统开销,且进程前段工作可能失效。 3.6 死锁预防和避免 3.6.1 死锁预防 4、摒弃“环路等待”条件 有序资源分配法:为资源编号,申请时需按编号进行。 缺点: (1)新增资源不便,(原序号已排定) (2)资源与进程使用顺序不同造成浪费 (3)用户不自由 3.6.2 系统的安全状态 在“避免死锁”方法中的判断条件 1. 安全状态 系统按某种顺序并发进程都能达到获得最大资源而顺序完成的序列为安全序列。 能找到安全序列的状态为安全状态。 3.6.2 系统的安全状态(2) 2.安全状态例 进程 最大需求 已分配 可用 P1 10 5 3 P2 4 2 P3 9 2 安全序列:p2?p1?p3 3.6.2 系统的安全状态(3) 3安全—不安全的转换 上例中,若P3再申请一台,则不安全 进程 最大需求 已分配 可用 P1 10 5 2 P2 4 2 P3 9 3 3.6.3利用银行家算法避免死锁 1.数据结构 available[j]=k: 系统现有Rj类资源k个; max[i,j]=k: 进程i需要Rj的最大数k个; alloc[i,j]=k: 进程i已得到Rj类资源k个; need[i,j]=k: 进程i需要Rj类资源k个 有:need[i,j]= max[i,j]-alloc[i,j] requesti 进程i请求资源数 worki:进程i执行完后系统应有资源数(也即可用数) finish[i]:布尔量,表进程i能否顺序完成。 2.银行家算法 reqi=needi error reqi=avail block avail=avail-reqi alloci=alloci+reqi needi=needi-reqi 系统安全? Y N Y N Y N 正式将资源分 配给进程Pi 撤销本次分配 让进程Pi等待 3.安全性算法 设置两个向量 ① 工作向量Work: 它表示系统可提供给进程继续运行所需的各类资源数目 ② Finish: 它表示系统是否有足够的资源分配给进程,使之运行完成 (2) 从进程集合中找到一个能满足下述条件的进程: ① Finish[i]=false; ② Need[i,j]≤Work[j]; 若找到, 执行步骤(3), 否则,执行步骤(4)。 (3) 当进程Pi获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行: Work[j]∶=Work[j]+Allocation[i,j]; Finish[i]∶=true; go to step 2; (4) 如果所有进程的Finish[i]=true都满足, 则表示系统处于安全状态;否则,系统处于不安全状态。 4实例 图 3-16 T0时刻的资源分配表 4实例 图 3-17 T0时刻的安全序列 4实例 图 3-18 P1申请资源时的安全性检查 图 3-19 为P0分配资源后的有关资源数据 3.7死锁的检测和解除 3.7.1检测 1.资源分配图 p1 p2 r1 r2 图3-20 每类资源有多个时的情况 3.7死锁的检测和解除 2.死锁定理 简化资源分配图 若能完全简化则消去所有的边。 定理:死锁状态的充分条件,资源分配图不可完全简化 Work
您可能关注的文档
- 第三章分子的对称性习题课.ppt
- 第三章分子对称性和点群.ppt
- 第三章分层随机抽样.ppt
- 第三章分布函数的计算.ppt
- 第三章刑事诉讼法基本原则.ppt
- 第三章几种重要的概率分布.ppt
- 第三章刚体力学习题课.ppt
- 第三章刚体力学基础.ppt
- 第三章创建和编辑基本图形对象.ppt
- 第三章创伤出血急救.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)