资源描述:
《计算机操作系统教程--核心与设计原理习题6答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、习题6答案习题66.1何谓死锁?死锁产生的原因和必要条件是什么?答:a.死锁是指多个进程因竟争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进;b.产生死锁的原因有二:一是竟争资源,二是进程推进顺序非法;c.必要条件是:互斥条件,请求和保持条件,非剥夺条件和循环等待条件。6.2列出日常生活中的几个死锁的例子。答:略。6.3在一个死锁中,只包含一个进程是否可能?答:不可能。6.4死锁和饥饿的主要区别是什么?答:饥饿与死锁有一定联系:二者都是由于竞争资源而引起的,但又有明显差别,主要表现在如下几个方面:(1)从进程状态考虑
2、,死锁进程都处于等待状态,忙式等待(处于运行或就绪状态)的进程并非处于等待状态,但却可能被饿死;(2)死锁进程等待永远不会被释放的资源,饿死进程等待会被释放但却不会分配给自己的资源,表现为等待时限没有上界(排队等待或忙式等待);(3)死锁一定发生了循环等待,而饿死则不然。这也表明通过资源分配图可以检测死锁存在与否,但却不能检测是否有进程饿死;(4)死锁一定涉及多个进程,而饥饿或被饿死的进程可能只有一个。饥饿和饿死与资源分配策略有关,因而防止饥饿与饿死可从公平性考虑,确保所有进程不被忽视,如FCFS分配算法。6.5一台计算机共8台磁带机,
3、由N个进程共享,每个进程最多要3台,问N为多少时不会有死锁,为什么?答:N<=3,可通过画出资源分配图来解。。6.6有R1(2个)、R2(1个)两类资源和两个进程P1、P2,两个进程均以:申请R1Æ申请R2Æ申请R1Æ释放R1Æ释放R2Æ释放R1的顺序使用资源,求可能达到的死锁点,并画出此时的资源分配图。答:当两个进程都执行完第1步后,无论哪个进程执行完第2步,以后,这两个进程再申请资源时就会死锁。P1R1R2P26.7解决死锁的方法有哪几种?哪种方法最容易实现?哪种方法使资源的利用率最高?答:解决死锁可归纳为4种方法:预防死锁,避免死
4、锁,检测死锁和解除死锁。其中,预防死锁是最容易实现的。避免死锁使资源的利用率最高.6.8预防死锁的途径具体有哪些?答:a.摈弃“请求和保持”条件,就是如果系统有足够的资源,便一次性地把进程所需的所有资源分配给它;b.摈弃“不剥夺”条件,就是已经保持了资源的进程,当它提出新的资源请求而不能立即得到满足时,必须释放它己经保持的所有资源,待以后需要时再重新中请;c.摈弃“环路等待条件”,就是将所有资源按类型排序标号,所有进程对资源的请求必须严格按序号递增。6.9下面关于死锁问题的叙述哪些是正确的,哪些是错误的,说明原因。(1)参与死锁的所有进
5、程都占有资源;(2)参与死锁的所有进程中至少有两个进程占有资源;(3)死锁只发生在无关进程之间;(4)死锁可发生在任意进程之间。答:说法(1)是错误的,应该是参与死锁的所有进程都等待资源。如下图所示,参与进程p1、p2、p3、p4,尽管p3、p4不占有资源,但也卷入死锁。说法(2)正确。参与死锁的进程至少有两个,设为p1,p2,p1占有资源r1而等待资源r2,p2占有资源r2而等待资源r1。说法(3)错误。死锁也可能发生在相关进程之间,如p1和p2也可能是相关进程。说法(4)正确,死锁既可能发生在相关进程之间,也可能发生在无关进程之间。
6、即死锁可发生在任意进程之间。6.10如果在银行算法例题中最后一步,把P0发出的请求向量改为Request0(0,1,0),系统是否能将资源分配给它?答:可以。首先,Request0(0,1,0)<=NeedO(7,4,3),Request0(0,1,0)<=Available(2,3,0);分配后可修改得一资源数据表(表略),进行安全性检查,可以找到一个安全序列{P1,P4,P3,P2,PO},或{P1,P4,P3,P0,P2},因此,系统是安全的,可以立即将资源分配给P0.6.11有5个进程P1、P2、P3、P4、P5共用三类资源A(
7、17个)、B(5个)、C(20个),T0时刻系统状态如下:最大需求已分配P1559212P2536402P34011405P4425204P5424314请问(1)、T0时刻是否为安全状态,若安全请给出安全系列。(2)、T0时刻,P2:Request(0,3,4),能否分配,为什么?(3)、在(2)的基础上P4:Request(2,0,1),能否分配,为什么?(4)、在(3)的基础上P1:Request(0,2,0),能否分配,为什么?答:(1)、安全(2)、不能分配(3)、能分配(4)、不能分配6.12试化简图6.中的资源分配图,并利
8、用死锁定理给出结论。R0P0P1R1R2R3R4P2P3P4图6.资源分配图答:会发生死锁,死锁进程是P1,P3,P4。