第5章 死锁 练习题参考答案

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

第五章死锁练习题参考答案

(一)单项选择题

1.D 2.C 3.B 4.D 5.A 6.C 7.D

(二)填空题

1.死锁2.资源管理不得当,并发执行时3.占有并等待资源,循环等待资源4.等价的5.没有死锁6.一个条件不成立7.静态分配资源,释放已占资源8.预分配资源.开始执行前9.没有占用资源10.抢夺11.主存空间,处理器12.按序分配13安全状态14.避免死锁15.银行家算法16.死锁的避免17.n(x- 1)+l<=m 18.死锁检测方法19判断系统,解除死锁20.占用表,等待表21.尚需量,剩余量22终止,抢夺资源23.校验点24.防止,检测

(三)简答题

1.若系统中存在一组进程、它们中的每—个进程都占用了某种资源而又都在等待其中另一个进程所占的资源,这种等待永远不能结束,则说明系统出现了死锁。产生死锁的原因有两个:一是操作系统对资源的管理不当,二是没有顾及进程并发执行时可能出现的情况。

2.采用某些资源分配策略使死锁的四个必要条件之一不成立,就能防止死锁。除第一个条件互斥使用资源没有对应策略外,对占有并等待资源、不可抢夺资源和循环等待资源这三个条件可采用静态分配资源,释放已占资源,抢夺式分配资源和按序分配资源等资源分配策略。

3.如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于安全状态。常用银行家算法动态地检测系统中的资源分配情况和进程对资源的需求情况进行资源分配,确保系统处于安全状态。

4解决死锁问题有以下三种方法:(1)死锁的防止。系统按预定的策略为进程分配资源,这些分配策略能使死锁的四个必要条件之一不成立,从而使系统不产生死锁。(2)死锁的避免。系统动态地测试资源分配情况,仅当能确保系统安全时才给进程分配资源。(3)死锁的检测。对资源的申请和分配不加限制,只要有剩余的资源就可把资源分配给申请者,操作系统要定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。5.用抢夺资源的方式解除死锁时要注意三点:(1)抢夺进程资源时希望付出的代价最小。(2)为被抢夺者的恢复准备好条件,如返回某个安全状态,并记录有关信息。(3)防止被抢夺资源的进程“饿死”,一般总是从执行时间短的进程中抢夺资源。

(四)应用题

1.(1)根据表,P1,P2和P3三个进程尚需资源数分别是4,5和1,系统的资源剩余量为2,若把剩余的资源量全部分配给P2,系统产已无资源可分配,使三个进程都等待资源而无法完成,形成死锁。所以不能先满足进程P2的要求。

(2)可先为进程P3分配1个资源,当它归还3个资源后,这样共有4个可分配资源,可满足P1申请1个资源的要求,再分配3个资源给进程P1,待P1归还7个资源后,先满足P2申请2个资源的请求,分配给进程P2,再分配3个资源给P2,使它完成。

2.(1)系统目前尚余有的资源数为(2,6,2,1),五个进程尚需的资源数分别是A:(2,0,0,0) ; B:(0,0,0,0); C:(4,6,2,0) ; D:(5,7,0,0); E:(0,0,2,1);由于进程B己满足了全部资源需求,它在有限时间内会归还这些资源,因此可分配资源达到(3,6,4,1),这样就可分配给进程A;等A归还资源后,可分配资源达到(6,12,6,1),再分配给进程C;之后可分配资源会达到(7,12,10,1),分配给进程D并等待一段时间后,可分配资源将达到(7,12,10,2),最后,可分配给进程E,满足其全部请求。所以说目前系统处于安全状态。

(2)若此时给进程D分配(2,5,0,0)个资源,进程D尚需(3,2,0,0),则系统剩余的资源量为(0,

1,2,1);若待进程B归还资源后,可分配资源能达到(1,1,4,1),根据各进程尚需资源量,只有先满足E的资源需求,待它归还资源后,可配资源只有(1,1,6,1),显然无法满足进程A,C,D中任何一个进程的资源要求,这样系统就会产生死锁。所以此时系统不能为进程D分配(2,5,0,0)个资源。

3.证明:设n个进程请求的最大资源量分别为x i,i=1,2,…n。根据条件∑x i<m+n, 从而∑x i-n<m, 则有∑(x i-1)<m,∴∑(x i-1)+1<=m.资源申请最坏的情况是每个进程已得到了(x i-1)个资源,现均要中请最后一个资源,由上式可知系统至少还有一个剩余资源可分配给某个进程,待它归还资源后就可供其他进程使用,因此该系统不会发生死锁。

4.(1)用列表法分析这个问题,下表中每一行表示这一次资源分配后的情况。

实际分配资源次序申请资源次序进程已占资源量尚需资源量剩余资源量(12)

1 1 B 4 6 8

2 2 C

3

4 5

3 3 A 3 2 2

等待 4 C

等待 5 B

4 6 A

5 0 0

归还 A 5

5 4 C 5 2 3

6 8 C

7 0 1

归还 C 8

7 5 B 6 4 6

8 7 B 10 0 2

在进程第1,2,3次申请时,剩余资源量都能分别满足进程B,C,A的最大需求量10,7,5,所以都能分配,第4次申请时进程C尚需4个资源,大于剩余量(2个),虽然本次仅申请2个,根据银行家算法不能分配,只能等待。同理,第5次申请时进程B也只能等待,当第6次申请时,进程A的要求能得到满足,这实际上是第4次分配资源,待进程A归还资源后,可分配资源达到5个,此时它己超过进程c的尚需资源量(4),而小于B的尚需资源量(6),所以可完成第4次申请,即第5次实际分配。由上表可以看出,完成第5次分配后,进程A己分配到全部资源(5个),且已归还给系统(或许该进程已完成)、进程B已占有资源4个,进程C巳占资源5个。

(2)用(1)中同样的方法完成全部进程的资源分配,具体分配过程列在上表的最后四行.

相关文档
最新文档