- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OS0死锁
3.4 死锁问题(DEADLOCK) P103 3.4.1 概述 B.竞争临时性资源引起死锁 详见书 P104 图3-13,图3-14 (2)进程推进顺序不当引起死锁 2. 死锁发生条件 3. 处理死锁的基本方法 3.4.2 死锁的预防 -摒弃“不剥夺”条件: 3.4.3 死锁的避免 1.系统的安全状态(见书107) 安全状态举例 2.利用银行家算法避免死锁 银行家算法的实现: 银行家算法 P109 安全性算法: 银行家算法例:P110 练 习 3.4.4 死锁的检测 资源分配图(resource allocation graph)用于描述系统的死锁 有环有死锁 有环无死锁 2.死锁定理 死锁检测的计算机实现 P113 3.4.5 死锁的解除 课后练习 ----------- 资源分配图的简化 资源分配图的简化例: 资源分配图的简化例:不可完全简化 重新启动 进程回退 回滚每个死锁进程到前一个检查点,重新执行每个进程。 撤销死锁进程 全部撤销; 按照某种原则逐个选择死锁进程进行撤消,直到解除系统死锁 选择原则:一般选择系统付出代价最小的进程,即: 花费处理机的时间最少、输出最少、估计未执行部分最多、已分配的资源量最少、优先级最低 剥夺资源 按照某种原则逐个剥夺进程资源,直到解除死锁。 系统可供用户使用的内存共150MB,目前分配给3个进程的数量如下表所示。这时,第个4进程产生,它最终需要内存60MB,目前的申请数为25MB。应用关于死锁问题的银行家算法,回答是否可以分配给第4个进程25MB内存,为什么? 15MB 60MB 3 40MB 60MB 2 45MB 70MB 1 已经得到内存量 最大需要内存量 进程 3 3 2 (2 3 0) 7 4 3 1 2 2 (0 2 0) 6 0 0 0 1 1 4 3 1 0 1 0 2 0 0 (3 0 2) 3 0 2 2 1 1 0 0 2 7 5 3 3 2 2 9 0 2 2 2 2 4 3 3 P0 P1 P2 P3 P4 Available A B C Need A B C Allocation A B C Max A B C 资源情况 进程 True True True True True 5 3 2 7 4 3 7 4 5 7 5 5 10 5 7 3 0 2 2 1 1 0 0 2 0 1 0 3 0 2 0 2 0 0 1 1 4 3 1 7 4 3 6 0 0 2 3 0 5 3 2 7 4 3 7 4 5 7 5 5 P1 P3 P4 P0 P2 Finish Work+Alocation A B C Allocation A B C Need A B C Work A B C P1申请资源时的安全性检查 T0时刻的资源分配表 找一个既不阻塞又非独立的进程节点(说明可以顺利执行直至释放出资源),消去请求边和分配边。 再把相应的资源分配给一个等待该资源的进程,继续消去,以此类推 在进行一系列化简后,若能消去图中所有的边,即所有进程都成为孤立的点,称该图是可以完全简化的;否则是不可完全简化的。 对于不可完全简化的资源图,不同的简化顺序,将得到相同的不可简化图。 P1 O O O P2 O O R1 R2 P1 O O O P2 O O R1 R2 P1 O O O P2 O O R1 R2 P1 P2 P3 P1 P2 P3 Lifang ?2011 */38 操作系统 3.4.1 概述 3.4.2 死锁的预防 3.4.3 死锁的避免 3.4.4 死锁的检测 3.4.5 死锁的解除 死锁指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。 1. 死锁发生原因 (1)竞争资源 (2)进程推进顺序非法 资源分类: 可剥夺资源——CPU、主存 非剥夺资源——磁带机、打印机 永久性资源——可顺序重复使用的资源 如:打印机等 临时性资源——可以动态生成和消耗。 如
文档评论(0)