- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五单元 死锁与饥饿
讨论 Remarks1: 银行家算法要求条件:进程所需资源最大量, 这个信息对于充要性分析是不够的。 Remarks2: 假设:进程预先给出有关资源的命令序列,则可以给出死锁避免的充要性算法,复杂度(NP Complete)。 Remarks3: 预先给出进程有关资源的命令序列是困难的(程序的分枝和循环)。 5.8 死锁的检测 数据结构: Available: array[1..m]of integer; Allocation: array[1..n,1..m]of integer; Request: array[1..n,1..m]of integer; 临时变量: Work: array[1..m]of integer; Finish: array[1..n]of boolean; 死锁检测算法 Work:=Available; Finish:=false; 有满足条件的i: Finish[i]=false Request[i]?Work Finish[i]=true; Work:=Work+Allocation[i] T ?i ,finish[i]=true T F F 无死锁 死锁 Finish[I]=true for allocation[I]=0 Remarks 1. 上述算法可以检测到参与死锁的全部进程,包括占有资 源和不占有资源的进程。 2. 如果希望只检测占有资源的进程,初始化时: Finish[i]=true, for allocation[I]=0 死锁例子 例子:R={A(7),B(2),C(6)}; P={p0,p1,p2,p3,p4} Allocation Request Available Work Finish A B C A B C A B C A B C p0: 0 1 0 0 0 0 0 0 0 p1: 2 0 0 2 0 2 p2: 3 0 3 0 0 0 p3: 2 1 1 1 0 0 p4: 0 0 2 0 0 2 未死锁。 此时,Request[2]=(0,0,1), 死锁,参与死锁进程{p1,p2,p3,p4} 5.8.2 死锁检测时刻 考虑因素: 死锁发生频度; 死锁影响进程。 1. 等待时检测: 发现早,恢复代价小,开销大(overhead)。 2. 定时检测: 3. 资源(eg. CPU)利用率下降时检测。 5.9 死锁恢复 1. 重新启动 简单,代价大,涉及未参与死锁的进程。 2. 终止进程(process termination) 环路上占有资源的进程。 (1) 一次性全部终止;(2) 逐步终止(优先级,代价函数) 3. 剥夺资源(resource preemption)+进程回退(rollback) (1) select a victim;(2) rollback. 问题: (1) 保存snapshot代价大;(2) 消除影响困难; (3) starvation. 5.10 鸵鸟算法 视而不见 Pro: 工程师观点(考虑死锁发生的频率,危害,处理代价) 死锁发生频率其它故障引起的系统瘫痪的频率 死锁处理constant overhead 危害 Cont: 数学家观点 必须处理,无论代价如何 目前系统实际如此 Eg. UNIX proc结构(50 and up) 5.11 有关问题的讨论 关于充要性算法 已知进程关于资源活动序列 困难: 程序中的分枝与循环 复杂度高(NP Complete) 生灭资源问题 消息 消耗性资源与可重用资源并存 关于两阶段封锁 增长阶段有可能死锁 5.12 饥饿与活锁 饥饿(starvation):当等待时间给进程推进和响应带来明显影响时,称发生了进程饥饿.饥饿到一定程度的进程所赋予的使命即使完成也不再具有实际意义时称该进程被饿死(starved to death). 没有时间上界的等待 排队等待 忙式等待 忙式等待条件下发生的饥饿,称为活锁(live lock). 死锁与饥饿 饥饿 vs 死锁 死锁进程处于等待状态,忙式等待的进程并非处于等待状态
您可能关注的文档
最近下载
- 专题05 解三角形(10类题型全归纳)-2025年高考数学二轮热点题型归纳与变式演练(北京专用)(解析版).docx VIP
- 加氢实操考试112.doc VIP
- 汽油加氢装置操工高级理论知识试卷.doc VIP
- 初中物理校本课程教材《身边的物理学》.docx
- 日立电梯HPM(3-4MS)故障检测说明.pptx
- 道德与法治人教版二年级上册版教案教学设计.docx
- 科技背景下蜜雪冰城如何用数据驱动决策提升业绩.docx VIP
- 湖北师范大学 826计算机软件技术基础 2016年考研专业课真题.pdf VIP
- 蜜雪冰城数据驱动下的营销策略变革.docx VIP
- 机电安装工程合同标准版(业主版).doc VIP
文档评论(0)