问答题
设系统仅有一类数量为M的独占型资源,系统中N个进程竞争该类资源,其中各进程对该类资源的最大需求为W。当M、N、W分别取下列各值时,下列哪些情形会发生死锁?为什么?
(1)M=2,N=2,W=2。
(2)M=3,N=2,W=2。
(3)M=3,N=2,W=3。
(4)M=5,N=3,W=2。
(5)M=6,N=3,W=3。
【正确答案】这种题目关键是要找例子,找出例子来说明系统能否发生死锁,如果找不出例子就认为该系统不会死锁。
(1)会发生死锁。当2个进程都占有1个资源再申请1个资源时,就出现了死锁。
(2)不会发生死锁。因为2个进程需要的资源最大数量都是2个,而系统拥有的资源量是3个,所以总会有1个进程得到2个资源后被运行,运行完毕后释放资源,于是另一个进程也能顺利运行完,所以不会死锁。
(3)会发生死锁。当一个进程占有1个资源,另一个进程占有2个资源时,2个进程都要再申请资源,但是系统已经没有资源了,所以就发生死锁了。
(4)不会发生死锁。因为3个进程需要的资源最大数量都是2个,而系统有5个资源,所以至少有2个进程可以拿到足够的资源运行,运行完后再释放资源,最后一个进程也能得到运行,所以不会死锁。
(5)会发生死锁。因为如果3个进程都各自占有了2个资源的时候再申请资源,系统的资源就没了,而且没有一个进程可以得到运行,系统处于死锁状态。
本题也可以使用第6题中所提到的结论以及推论进行系统状态判断,如果熟悉该结论,就可以轻松判断出是否会发生死锁。
【答案解析】