- 1、本文档共82页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 死锁与饥饿 死锁与饥饿 死 锁: indefinite wait. 饥 饿: not necessarily in wait state. 死锁和饥饿都是由于进程竞争资源而引起的。 5.1 死锁的概念 5.1 死锁的概念(Cont.) 定 义: 一组进程中的每一个进程, 均无限期地等待此组进程中 某个其它进程占有的、 因而永远无法得到的资源, 这种现象称为进程死锁。 定义死锁时刻: 无限等待发生时; 等待发生前(已注定死锁)。 5.1 死锁的概念(Cont.) 几个有用的结论: 参与死琐的进程至少有 2 个; 每个参与死锁的进程均等待资源; 参与死锁的进程中至少有 2 个进程占有资源; 死锁进程是系统中当前进程集合的一个子集。 5.2 死锁的类型 5.2 死锁的类型(Cont.) 5.3 死锁的条件 Coffman条件(必要条件): 资源独占(mutual exclusion) 不可抢占(non preemption) 保持申请(hold-and-applying) 循环等待(circular wait) 5.4 死锁的处理 死锁预防(deadlock prevention) 静态: 进程有关资源的活动按某种协议加以限制, 若所有进程都遵守该协议, 即可保证不发生死锁。 死锁避免(deadlock avoidance) 动态: 实时检测进程的资源申请, 拒绝不安全的请求, 保证不发生死锁。 死锁检测(deadlock detection) 死锁恢复(deadlock recovery) 5.5 资源分配图 5.5 资源分配图(Cont.) 资源分配图图示: 进 程: 资源类: 申请边: 进程到资源类; 分配边: 由资源实例到进程; 申 请: pi 申请 rj 中的一个资源实例, 由 pi 向 rj 画一条申请边, 如可满足, 改为分配边。 释 放: 去掉分配边。 5.5 资源分配图(Cont.) 5.6 死锁的预防 保证系统不死锁的静态策略 对进程有关资源的活动加限制, 所有进程遵循这种限制, 即可保证没有死锁发生。 优 点: 简单, 系统不需要做什么。 缺 点: 对进程的约束, 违反约束仍可能死锁。 预防方法: 预先分配策略; 有序分配策略。 5.6.1 预先分配策略 进程: 运行前申请所需全部资源; 系统: 能够满足, 全部分配; 否则, 一个也不分配。 思想: 破坏“hold-and-apply”条件。 缺点: 资源利用效率低; 一次提出申请困难: 程序不同分支可能需要申请不同资源。 5.6.2 有序分配策略 5.6.2 有序分配策略(Cont.) 5.6.2 有序分配策略(Cont.) 优 点 与预先分配相比, 资源利用率提高。 缺 点 资源编号困难; 按号申请增加使用者负担, 一旦不按号申请仍可能死锁; 为保持按序申请, 某些暂时不用的资源 也需提前申请, 牺牲资源利用率。 5.6.2 有序分配法(Cont.) 5.6.2 有序分配法(Cont.) 5.8 死锁的发现 5.8.2 死锁检测时刻 5.9 死锁的恢复 5.10 鸵鸟算法 Ostrich algorithm: 对死锁视而不见, 当死锁真正发生且影响系统正常运行时, 手工干预(重新启动)。 不同观点 工程师观点(考虑死锁发生的频率,危害,处理代价) 死锁发生频率其它故障引起系统瘫痪的频率; 死锁处理constant overhead 危害。 数学家观点:必须处理,无论代价如何 目前系统实际如此 Eg. UNIX proc结构(PCB)及交换机制存在死锁隐患。 5.11 有关问题的讨论 关于充要性算法 预防策略: 进程违反协议也可能死锁。 避免策略: 开销大, 非必要性算法(保守算法)。 充要性算法: 已知进程所需资源最大量及其资源活动序列; ⑴ 困难: 程序中的分枝与循环; ⑵ 复杂度高 (NP Complete)。 生灭资源(或消耗性资源)问题 资源: 可重用资源;生灭资源(消息): 超时处理; 死锁要考虑两类资源, 增加了复杂性。 可剥夺资源问题:不会因为进程竞争CPU而死锁;
您可能关注的文档
- (操作系统课件)01第一章操作系统概述.ppt
- (操作系统课件)02第二章进程线程与作业.ppt
- (操作系统课件)04第四章互斥同步与通讯(1并发进程).ppt
- (操作系统课件)04第四章互斥同步与通讯(2会合).ppt
- (操作系统课件)06第六章存储管理(外存管理技术).ppt
- (操作系统课件)06第六章存储管理.ppt
- (操作系统课件)07第七章_文件系统1文件与文件系统.ppt
- (操作系统课件)07第七章文件系统1.ppt
- (操作系统课件)08第八章设备与IO管理.ppt
- (操作系统课件)13第十四章操作系统理论.ppt
- 中国国家标准 GB/T 5211.9-2025颜料和体质颜料通用试验方法 第9部分:相同类型着色颜料耐光性的比较.pdf
- 《GB/T 5211.9-2025颜料和体质颜料通用试验方法 第9部分:相同类型着色颜料耐光性的比较》.pdf
- 《GB/T 37228-2025安全与韧性 应急管理 突发事件管理指南》.pdf
- GB/T 23724.3-2025起重机 检查 第3部分:塔式起重机.pdf
- 中国国家标准 GB/T 25163-2025防止儿童开启包装 可重新盖紧包装的要求与试验方法.pdf
- 《GB/T 25163-2025防止儿童开启包装 可重新盖紧包装的要求与试验方法》.pdf
- GB/T 16263.5-2025信息技术 ASN.1编码规则 第5部分:W3C XML模式定义到ASN.1的映射.pdf
- 中国国家标准 GB/T 16263.5-2025信息技术 ASN.1编码规则 第5部分:W3C XML模式定义到ASN.1的映射.pdf
- 《GB/T 16263.5-2025信息技术 ASN.1编码规则 第5部分:W3C XML模式定义到ASN.1的映射》.pdf
- GB/T 11349.2-2025机械振动与冲击 机械导纳的试验确定 第2部分:用激振器作单点平动激励测量.pdf
文档评论(0)