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