《操作系统》习题集参考答案:第6章 死锁

  • 格式:pdf
  • 大小:415.12 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第6章死锁-习题集

一、选择题

1. C

2. C

3. C

4. C //产生死锁的原因是系统资源不足及进程推进顺序不正确

5. B

6. D

7. B

8. C

9. C

10. D //有序资源分配法的实现思想是将系统中的所有资源都按类型赋予一个编号(如打

印机1,磁带机为2等),要求每一个进程均严格按照编号递增的次序来申请资源,同类资源一次申请完。这样不会造成循环等待。

11. A //互斥条件是资源本身固有的特性。

12. B //当每个都获得2台打印机且系统中剩余打印机不少于1台时,系统不会发生死锁,

即11-2N>=1,由此知N<=5。

//本注:

N=1,空闲11-3*1=8,不死锁

N=2,空闲11-3*2=5,不死锁

N=3,空闲11-3*3=2,不死锁

N=4,每个2台,空闲11-2*4=3,不死锁

N=5,每个2台,空闲11-2*5=1,不死锁

N=6,5个进程2台,1个进程1台,无空闲,死锁!

13. C //同上例。8-2K>=1,K<=3.5,取整为4。

14. B

15. B

16. B //本注:破坏了死锁必要条件“环循等待”,属于“死锁预防”

17. C

18. D //本注:P2和P3无法满足资源需要,都需资源R2三个。

二、综合应用题

1.所谓死锁是指多个进程因竞争系统资源或相互通信而处于永久阻塞状态,若无外力作

用,这些进程都将无法向前推进。

产生死锁的原因是:一是由多进程共享的资源不足而引起竞争资源;二是由于进程在运行过程中具有异步性,进程推进顺序非法。

2.必要条件如下:

●互斥条件。指在一段时间内某资源仅为一个进程所占有。

●不剥夺条件。指进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,

而只能由该进程自己释放。

●部分已分配条件(Hold and Wait):指进程每次申请它所需要的一部分资源,在等待

分配新资源的同时,进程继续占有已分配到的资源。

●环路等待条件。指存在一种进程资源的循环等待链,链中每一个进程已获得的资源

同时被链中下一个进程所请求。

解决死锁问题常采用的措施有:

●死锁预防。通过破坏死锁产生的四个必要条件中之一来预防死锁的发生。

●死锁避免。在资源动态分配进程中,用某种方法防止系统进程不安全状态,从而避

免死锁。

●死锁的检测及解除。通过系统的检测机构及时地检测出死锁的发生,然后采取某种

措施解除死锁。

3.有可能。例如在系统死锁的状态下,进程处于占有等待资源的状态,应当即不属于运行

态也不属于就绪态,即都处于阻塞状态时。

4.在资源分配系统中,死锁发生的原因是由于多个进程共享有限的独占型资源。当多个进

程占有了部分资源又需要更多的资源时,就可能形成循环等待链而导致死锁。

死锁情况分析:每个进程都占有W-1个资源,需再分配1个资源,为保证不死锁,系统必须至少有一个可分配的资源,取M满足:

M>=N(W-1)+1

因此保证系统不发生死锁的最小M什可以从下面公式获得:

M=N(W-1)+1

1)2*0+1=1,而M=3,不会死锁

2)2*1+1=3,而M=3,不会死锁

3)2*2+1=5,而M=3,可能死锁。出现死锁情况是:一个进程占有2个资源,另一占

1个资源

4)3*1+1=4,而M=5,不会死锁

5)3*2+1=7,而M=7,可能死锁。出现死锁情况是:3个进程各占2个资源

5.1个进程,不会死锁

2个进程,2*(3磁带机-1)+1=5,而有8台磁带机,不会死锁

3个进程,3*(3磁带机-1)+1=7,而有8台磁带机,不会死锁

4个进程,4*(3磁带机-1)+1=9,而有8台磁带机,可能死锁

所以,N<=3时,不会死锁。

6.银行家算法是避免死锁的一种方法,其实现思想是:允许进程动态地申请资源,系统在

每次实施资源分配之前,先计算资源分配的安全性,若此次资源分配安全(即资源分配后,系统能按某种顺序来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利地完成),便将资源分配给进程,否则不分配资源,让进程等待。

银行家算法具有较好的理论意义,但在实际系统中却难以实施。其原因是:难以预先获得进程申请的最大资源数;运行过程上进程的个数是不断变化的,所以银行家算法难以解决实际中的死锁问题。

7.

1)剩余单元数=150-(25+40+45)=40。P4需求60,当前请求25。若满足P4当前请

求,则剩余单元数=40-25=15,可以满足P3的需求,所以是安全的。其中一个安全

序列{P3,P2,P1,P4}。

2)剩余单元数=150-(25+40+45)=40。P4需求50,当前请求35。若满足P4当前请求,

则剩余单元数=40-35=5,的个进程都不够分配,找不到一个安全序列,所以是不安

全状态。

8.

1)存在一个安全序列{P0,P3,P4,P1,P2},故该系统是安全的。

2)满足P2提出请求(1,2,2,2)后,可利用资源为(0,4,0,0)已不能满足任

何进程的需要,故系统进入不安全状态,此时系统不能将资源分配给P2。

9.不会。4个进程每个得1个,仍剩一个资源,可满足4个进程中的任意一个的最多需要,

从而可以将它占有的2个资源归还给系统,其余3个进程能顺利运行完毕。

10.由题目所给出的最大资源需求量和已分配资源数量,可计算出T0时刻各进程的资源需

求量Need,Need=最大资源需求量-已分配资源数量。