精品文档
1.当检测出发生死锁时,可以通过撤消一个进程解除死锁。( × ) 2.不安全状态就是死锁状态。( × )
3.系统只要处于安全状态,便可以避免进入死锁状态。( √ ) 4.若资源分配图中存在环,则一定产生了死锁。( × ) 5.计算机系统产生死锁的根本原因是系统中进程太多。( × ) 6.一旦出现死锁, 所有进程都不能运行。( × ) 四、简答题
1. 什么是死锁?简述死锁产生的必要条件。
答:死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程将永远不能再向前推进。
产生死锁的原因可归结为两点:
(1)争夺资源。(2)进程推进顺序非法。 产生死锁的必要条件是:
(1)互斥条件(2)请求和保持条件(3)不剥夺条件(4)环路等待条件
2.一台计算机有8台磁带机,他们由N个进程竞争使用,每个进程可能需要3台磁带机。请问N为多少时,系统没有死锁危险,并说明原因。 答:N=3、N=2、N=1时,系统没有死锁危险。
原因:当N=4时,如果每个进程已经分配2台磁带机时,不能找到安全序列,系统有死锁危险。 四、综合题
1.在银行家算法中,若出现下述资源分配情况:(课本习题P115 22)
收集于网络,如有侵权请联系管理员删除
精品文档
Process P0 P1 P2 P3 P4 Allocation 0 0 3 2 1 0 0 0 1 3 5 4 0 3 3 2 0 0 1 4 Need 0 0 1 2 1 7 5 0 2 3 5 6 0 6 5 2 0 6 5 6 Available 1 6 2 2 试问:(1)该状态是否安全?
(2)如果进程P2提出请求Request2(1,2,2,2)后,系统能否将资源分配给
它?
解:(1)利用安全性算法对此时刻的资源分配情况进行分析,可得此时刻的安全性分析
情况: Work Need 0 0 1 2 0 6 5 2 0 6 5 6 1 7 5 0 2 3 5 6 Allocation 0 0 3 2 0 3 3 2 0 0 1 4 1 0 0 0 1 3 5 4 Work+Allocation 1 6 5 4 1 9 8 6 1 9 9 10 2 9 9 10 3 1214 14 Finish true true true true true P0 1 6 2 2 P3 1 6 5 4 P4 1 9 8 6 P1 P2 1 9 9 10 2 9 9 10 (2)P2提出请求Request2(1,2,2,2),按银行家算法进行检查: ·Request2(1,2,2,2) ≤ Need(2,3,5,6) ·Request2(1,2,2,2) ≤ Available(1,6,2,2) ·试分配并修改相应数据结构,资源分配情况如下:
P0 P1 P2 P3 P4 Allocation 0 0 3 2 1 0 0 0 2 5 7 6 0 3 3 2 0 0 1 4 Need 0 0 1 2 1 7 5 0 1 1 3 4 0 6 5 2 0 6 5 6 Available 0 4 0 0 收集于网络,如有侵权请联系管理员删除
精品文档
·再利用安全性算法检查系统是否安全,可用系统资源Available(0,4,0,0)已不能满足任何进程的需要,不存在安全序列,故系统进入不安全状态,此时系统不能将资源分配给P2。
2.设系统中有三种类型的资源(A,B,C)和五个进程(P1,P2,P3,P4,P5),A资源的数量17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态如下表所示。系统采用银行家算法来避免死锁。请回答下列问题: (1)T0时刻是否为安全状态?若是,请给出安全序列。
(2)在T0时刻,若进程P2请求资源(0,3,4),是否能实现资源分配?为什么? (3)在(2)的基础上,若进程P4请求资源(2,0,1),是否能实现资源分配?为什么? (4)在(3)的基础上,若进程P1请求资源(0,2,0),是否能实现资源分配?为什么? T0时统状
资源情况 最大资源需求量 进程 P1 P2 P3 P4 P5 A B C 5 5 9 5 3 6 4 0 11 4 2 5 4 2 4 已分配资源量 A B C 2 1 2 4 0 2 4 0 5 2 0 4 3 1 4 系统剩余资源数量 A B C 2 3 3 刻系态
解:由题目所给出的最大资源需求量和已分配资源数量,可以计算出T0时刻进程的资源需求量Need,Need=最大资源需求量-已分配资源数量: 进程 P1 P2 P3 P4 P5 资源需求量 A B C 3 4 7 1 3 4 0 0 6 2 2 1 1 1 0 收集于网络,如有侵权请联系管理员删除
精品文档
(1)利用安全性算法对此刻的资源分配情况进行分析,可得此刻的安全性分析情况: P5 P4 P3 P2 P1 Work 2 3 3 5 4 7 7 4 11 11 4 16 15 4 18 Need 1 1 0 2 2 1 0 0 6 1 3 4 3 4 7 Allocation 3 1 4 2 0 4 4 0 5 4 0 2 2 1 2 Work+ Allocation 5 4 7 7 4 11 11 4 16 15 4 8 17 5 20 Finish true true True True true 从上述情况分析中可以看出,此时存在一个安全序列{P5,P4,P3,P3,P1},故该状态是安全的。
(2)在To时刻若进程P2请求资源(0,3,4),因请求资源数(0,3,4)>剩余资源数(2,3,3),所以不能分配。
(3)在(2)的基础上,若进程P4请求资源(2,0,1),按银行家算法进行检查:
? P4请求资源(2,0,1)≤P4资源需求量(2,2,1) ? P4请求资源(2,0,1)≤剩余资源数(2,2,3) 试分配并修改相应数据结构,资源分配情况如下: P1 P2 P3 P4 P5 Allocation 2 1 2 4 0 2 4 0 5 4 0 5 3 1 4 Need Available 3 4 7 0 3 2 1 3 4 0 0 6 0 2 0 1 1 0 ? 再利用安全性算法检查系统是否安全,可得此刻的安全性分析情况: P4 P5 P3 P2 Work Allocation Work+ Allcoation 0 3 2 0 2 0 4 0 5 4 3 7 4 3 7 1 1 0 3 1 4 7 4 11 7 4 11 0 0 6 4 0 5 11 4 16 11 4 16 1 3 4 4 0 2 15 4 18 17 5 20 Need Finish true true true true true P1 15 4 18 3 4 7 2 1 2 收集于网络,如有侵权请联系管理员删除
精品文档
从上述情况分析中可以看出,此时存在一个安全序列{P4,P5,P3,P2,P1},故该状态是安全的,可以立即将P4所申请的资源分配给它。 (4)不能将P1所申请的资源分配给它(分析过程略)
3.某系统有R1,R2和R3三种资源,在T0时刻P1,P2,P3和P4这四个进程对资源的占用和需求情况如下表所示,此时系统的可用资源向量为(2,1,2),系统采用银行家算法来避免死锁。请回答下列问题:
(1)计算系统中各种资源的总数和T0时刻各进程对各种资源的需求数。
(2)如果此时P1和P2均发出资源请求向量Requst(1,0,1),为了保证系统的安全性,应该如何分配资源给这两个进程?说明你所采用策略的原因。
T0时刻4个进程对资源的占用和需求情况
P1 P2 P3 P4
解:(1)因为四个进程已分配到的资源总数为R1:7;R2:2;R3:4
且T0时刻系统的可用资源向量为(2,1,2)
所以系统中各种资源的总数为(7,2,4)+(2,1,2)=(9,3,6) T0时刻进程P1、P2、P3、P4对各种资源的需求量NEED为: 3 2 2 6 1 3 3 1 4 4 2 2
最大资源需求量 R1 R2 R3 3 2 2 6 1 3 3 1 4 4 2 2 已分配资源数量 R1 R2 R3 1 0 0 4 1 1 2 1 1 0 0 2 —
收集于网络,如有侵权请联系管理员删除
15161OS第三章-习题(3.5-3.7)答案演示教学



