案例:
某系统中有 3 个并发进程竞争资源 R,每个进程都需要 5 个 R,那么至少有( )个 R,才能保证系统不会发生死锁。
A.12 B.13 C.14 D.15
- 解题思路
找出发生死锁的临界资源数m
大于m就不发生死锁,小于等于m就发生死锁
每个进程所需资源数 - 1,再相加,就是发生死锁的临界资源数
如:进程P1,P2,P3,所需资源数分别为n1,n2,n3,则临界资源数为 (n1-1) + (n2-1) + (n3-1)
- 解题步骤
3个进程,每个进程需5个资源
临界资源数:(5-1) + (5-1) + (5-1) = 12
每个进程都得到4个资源,即无法执行,也没有多余资源,于是就出现死锁
如果再有1个多余资源,不管给任何一个进程,该进程就可以执行;执行完之后释放出5个资源,于是其它进程也可以执行,就不会发生死锁
所以最小需要12 + 1 = 13个资源
选B