假设有三个进程竞争同类资源,如果每个进程需要2个该类资源,则至少需要提供该类资源( )个,才能保证不会发生死锁。

admin2017-08-31  24

问题 假设有三个进程竞争同类资源,如果每个进程需要2个该类资源,则至少需要提供该类资源(    )个,才能保证不会发生死锁。

选项 A、3
B、4
C、5
D、6

答案B

解析 首先可以使用逆向思维进行思考:三个进程,每个进程需要2个同类资源,那么总共需要多少个资源呢?有以下几种情况。
    (1)资源总数为1,则不管哪个进程占用该资源,都会导致无条件死锁。
    (2)资源总数为2,可分为两种情况:一个资源占用2个该资源,知道它执行完毕后释放,由另一个进程同时占用2个资源,最后由第三个进程使用,这样不会导致死锁;另一种情况是两个资源不为某一进程独占,则也会导致死锁,我们称这种状态是不安全的。
    (3)资源总数为3,与(2)中的情况一样,也是不安全的。
    (4)资源总数为4,无论资源如何分配,都不会导致死锁。
    用公式可以总结如下:
    资源总数(安全的)=进程数×(每个进程所需资源数—1)+1
    因此,正确答案应该是4个,答案为B。
转载请注明原文地址:https://kaotiyun.com/show/J0JZ777K
0

相关试题推荐
最新回复(0)