假设某计算机系统中资源R的可用数为6,系统中有3个进程竞争R,且每个进程都需要i个R,该系统可能会发生死锁的最小i值是 (请作答此空) 。若信号量S的当前值为-2,则R的可用数和等待R的进程数分别为 ( ) 。

2023-09-01

A.1
B.2
C.3
D.4

参考答案:C

如果i=1,即每个进程都需要1个R,3个进程同时运行需要3个R,还剩3个R,不会发生死锁。如果i=2,即每个进程都需要2个R,3个进程同时运行需要6个R,而R的可用数正好为6,不会发生死锁。如果i=3,即每个进程都需要2个R,当3个进程分别占有2个R时,都需要再申请一个R资源才能正常运行,但此时已经没有R资源了,进程之间便出现了相互等待的状况,发生死锁。
信号量的值小于0,表示没有可用的资源,其绝对值表示阻塞队列中等待该资源的进程数。