操作系统精髓与设计原理-第6章_并发性_死锁和饥饿.doc

操作系统精髓与设计原理-第6章_并发性_死锁和饥饿.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统精髓与设计原理-第6章_并发性_死锁和饥饿

第六章习题翻译 第一部分 复习题 6.1给出可重用资源和可消费资源的例子。 答:可重用资源:处理器,I/O通道,主存和辅存,设备以及诸如文件,数据库和信号量之类的数据结构。 可消费资源:中断,信号,消息和I/O缓冲区中的信息。 6.2可能发生死锁所必须的三个条件是什么? 答:互斥,占有且等待,非抢占。 6.3产生死锁的第4个条件是什么? 答:循环等待。 6.4如何防止占有且等待的条件? 答:可以要求进程一次性地请求所有需要的资源,并且阻塞这个资源直到所有请求都同时满足。 6.5给出防止无抢占条件的两种方法。 答:第一种,如果占有某些资源的一个进程进行进一步资源请求被拒绝,则该进程必须释放它最初占用的资源,如果有必要,可再次请求这些资源和另外的资源。 第二种,如果一个进程请求当前被另一个进程占有的一个资源,则操作系统可以抢占另一个进程,要求它释放资源。 6.6如何防止循环等待条件? 答:可以通过定义资源类型的线性顺序来预防。如果一个进程已经分配到了R类型的资源,那么它接下来请求的资源只能是那些排在R类型之后的资源类型。 6.7死锁避免,检测和预防之间的区别是什么? 答:死锁预防是通过间接地限制三种死锁必要条件的至少一个或是直接地限制循环等待的发生来避免死锁的出现。死锁避免允许可能出现的必要条件发生,但是采取措施确保不会出现死锁的情况。而死锁检测允许资源的自由分配,采取周期性的措施来发现并处理可能存在的死锁情况。 第二部分 习题 6.1写出图6.1(a)中死锁的四个条件。 解:互斥:同一时刻只有一辆车可以占有一个十字路口象限。占有且等待:没有车可以倒退;在十字路口的每辆车都要等待直到它前面的象限是空的。非抢占: 没有汽车被允许挤开其他车辆。 循环等待: 每辆汽车都在等待一个此时已经被其他车占领的十字路口象限。 6.2按照6.1节中对图6.2中路径的描述,给出对图6.3中6种路径的简单描述。 解:1.Q 获得 B 和A, 然后释放 B 和 A. 当 P 重新开始执行的时候, 它将会能够获得两个资源。 2. Q 获得 B和A, P 执行而且阻塞在对 A的请求上. Q释放 B 和A。当 P 重新开始执行的时候,它将会能够获得两个资源。 3. Q 获得 B ,然后 P 获得和释放 A. Q 获得A然后释放 B 和 A. 当 P 重新开始行的时候,它将会能够获得 B。 4. P 获得A然后 Q 获得 B. P 释放 A. Q 获得A然后释放 B. P 获得 B 然后释放 B。 5. P 获得,然后释放 A. P 获得 B. Q 执行而且阻塞在对B的请求上。P释放B。当 Q 重新开始执行的时候,, 它将会能够获得两个资源。 6. P 获得A而且释放A然后获得并且释放 B. 当 Q 重新开始实行, 它将会能够获得两个资源。 6.3图6.3反映的情况不会发生死锁,请证明。 证明:如果 Q 获得 B 和A(在 P之前请求A), 那么 Q 能使用这些两类资源然后释放他们, 允许A进行。 如果 P在 Q之前请求A获得A, 然后Q 最多能执行到请求A然后被阻塞。 然而,一旦 P 释放 A , Q 能进行。 一旦 Q 释放 B, A能进行。 6.4考虑下面的一个系统,当前不存在未满足的请求。 可用 r1 r2 r3 r4 2 1 0 0 当前分配 最大需求 仍然需求 r1 r2 r3 r4 r1 r2 r3 r4 r1 r2 r3 r4 0 0 1 2 0 0 1 2 2 0 0 0 2 7 5 0 0 0 3 4 6 6 5 6 2 3 5 4 4 3 5 6 0 3 3 2 0 6 5 2 a计算每个进程仍然可能需要的资源,并填入标为“仍然需要”的列中。 b系统当前是处于安全状态还是不安全状态,为什么。 c系统当前是否死锁?为什么? d哪个进程(如果存在)是死锁的或可能变成死锁的? e如果P3的请求(0,1,0,0)到达,是否可以立即安全地同意该请求?在什么状态(死锁,安全,不安全)下可以立即同意系统剩下的全部请求?如果立即同意全部请求,哪个进程(如果有)是死锁的或可能变成死锁的? 解: a. 0 0 0 0 0 7 5 0 6 6 2 2 2 0 0 2 0 3 2 0 b.系统当前处于安全状态,因为至少有一个进程执行序列,不会导致死锁,运行顺序是p1, p4, p5, p2, p

文档评论(0)

youshen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档