- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
死锁的产生和定义(续) 死锁——多个进程运行过程中因争夺资源而造成的一种僵局,无外力作用,它们都无法向前推进。 有关死锁的结论: 参与死锁的进程最少是两个 (两个以上进程才会出现死锁) 参与死锁的进程至少有两个已经占有资源 参与死锁的所有进程都在等待资源 参与死锁的进程是当前系统中所有进程的子集 如果死锁发生,会浪费大量系统资源,甚至导致系统崩溃 产生死锁的条件 1.互斥:竞争的资源一次只能被一个进程使用。 2.占有且等待:当一个进程占有一些资源,同时又申请新的资源,如果新资源申请失败,进程将占有资源且阻塞等待。 3.不剥夺:进程已占有的资源不能被其它进程强行剥夺。 4.循环等待:在系统中存在一个由若干进程形成的环形请求链,其中的每一个进程均占有一些资源,同时又申请环形请求链中下一个进程所占有的资源。 前3个条件为必要条件,第4个条件为前3个条件可能导致的结果,为死锁的充分条件,4个条件共同组成了死锁的充分必要条件。 解决死锁的方法 1.死锁防止:破坏4个条件之一;有效,使资源利用率低。 2.死锁避免:防止进入不安全态。 3.死锁检测与恢复:检测到死锁再清除。 死锁防止是通过限制死锁产生的4个充要条件之一,以预防死锁的发生。 1.互斥条件是临界资源固有属性,不能避免。 2.禁止“占有且等待”条件:全分配,全释放(AND) 缺点:(1)延迟进程运行 (2)资源严重浪费 3.禁止“不剥夺”条件 增加系统开销,且进程前段工作可能失效。 3.6.2 死锁防止 4.禁止“环路等待”条件 有序资源分配法:为资源编号,申请时需按编号进行。 缺点: (1)新增新设备类型不便,(原序号已排定) (2)资源与进程使用顺序不同造成浪费 (3)增加了程序设计难度 例:系统中有四类资源编号为:1 . 输入机4 . 打印机 7 . 磁带机 9 . 磁盘机 现有两个进程P1、P2都要使用打印机和磁盘机, P1先使用打印机后使用磁盘机, P2先使用磁盘机后使用打印机。如果P2先提出资源请求,则P2只能先申请打印机(编号小),然后申请磁盘机(编号大)。 P2在使用磁盘机的时候,打印机空闲着不能被P1申请使用 3.6.3 死锁的避免 避免死锁的方法通过资源分配之前预测是否会导致死锁,决定是否进行此次资源分配。 系统的两种状态:安全状态和不安全状态 按某种顺序并发进程都能达到获得最大资源而顺序完成的序列为安全序列。 能找到安全序列的状态为安全状态。 若系统找不到这个安全序列则处于不安全状态。 安全状态实例 系统有三个进程P1、P2和P3,共有14台打印机;进程P1、P2和P3要求12台、4台和9台打印机。 假设T0时刻,进程P1、P2和P3已经获得5台、2台和4台打印机。 进程 最大需求 已分配 还需要 可用 P1 12 5 7 3 P2 4 2 2 P3 9 4 5 安全序列:P2?P3?P1 安全状态向不安全状态 上例中,若P1再申请一台,则变为不安全状态。 进程 最大需求 已分配 还需要 可用 P1 12 6 6 2 P2 4 2 2 P3 9 4 5 利用银行家算法避免死锁 1.数据结构 Resource[j]=k:系统Rj类资源一共有k个; Available[j]=k: 系统现有Rj类资源k个; Claim[i,j]=k: 进程i需要Rj的最大数k个; Alloction[i,j]=k: 进程i已得到Rj类资源k个; Need[i,j]=k: 进程i需要Rj类资源k个 有:Need[i,j]= Claim[i,j]-Alloction[i,j] 设Requesti是进程i请求资源数 worki:进程i执行完后系统应有资源数(也即可用数) Finish[i]:布尔量,表进程i能否顺序完成。 银行家算法 Requesti≤Needi 出错 Requesti≤Availablei 阻塞 Available=Available- Requesti Alloctioni=Alloctioni+ Requesti Needi=Needi- Requesti Finish[j]=.F. Needj=Work Work=Work+Alloctionj Finish[j]=.T. 否 否 是 是 举例 Claim R1 R2 R3 Allocation R1 R2 R3 Need R1 R2 R3 Available R1 R2 R3 P1 3 2 2 1 0 0 P2 6 1 3 6 1 2 P3 3 1 4 2 1 1 P4 4 2 2 0 0 2 假定系统中有四个进程P1,P2,P3,P4和三类
您可能关注的文档
最近下载
- GB50209-2010建筑地面工程施工质量验收规范(新).pdf VIP
- 新苏教版六年级科学上册 第一单元《物质的变化》测试卷(A卷).docx VIP
- 2025年中国便利店发展报告.pptx VIP
- 新苏教版六年级科学上册第一单元《物质的变化》测试卷及答案.pdf VIP
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 住院患者跌倒护理风险评估与护理指导意见.pdf VIP
- 煤矿用防爆电气设备防爆检查标准-培训课件.pptx
- 半导体物理学(第8版)刘恩科课后习题答案解析.pdf
- 新媒体背景下信息技术的发展及其应用分析.pdf VIP
- 一种大吨位玄武岩纤维锚索整体张拉试验系统及试验方法.pdf VIP
文档评论(0)