单选题 系统中有R类资源m个,现有n个进程互斥使用。若每个进程对R资源的最大需求为w,那么当m,n、w分别取下表中的值时,对于表中的①~⑥各情况,______可能会发生死锁。若将这些情况的m分别加上______,则系统不会发生死锁。
m 3 3 5 5 6 6
n 2 3 2 3 3 4
w 2 2 3 3 3 2
【正确答案】 C
【答案解析】
【正确答案】 D
【答案解析】[解析] 对于第①种情况,资源数为3,在最坏的情况下,2个进程对R资源的需求都为2,有一个进程占用2个R资源,另一个进程占用1个R资源,占用2个R资源的进程运行完,释放资源,另一个便会获得所需的资源,不会出现死锁。
对于第②种情况,资源数为3,在最坏的情况下,3个进程对R资源的需求都为2,每个进程都占用1个R资源,发生死锁。
对于第③种情况,资源数为5,在最坏的情况下,2个进程对R资源的需求都为3,一个进程占用3个R资源,一个进程占用2个R资源,不会出现死锁。
对于第④种情况,资源数为5,在最坏的情况下,3个进程对R资源的需求都为3,如果3个进程占用的资源数分别为2、2、1,就会出现死锁。
对于第⑤种情况,资源数为6,在最坏的情况下,3个进程对R资源的需求都为3,如果3个进程占用的资源数都为2,就会出现死锁。
对于第⑥种情况,资源数为6,在最坏的情况下,4个进程对R资源的需求都为2,其中2个进程占用2个资源,2个进程占用1个资源,不会死锁。
总结一下,可以发现,当n×w-m>n时,系统就不会发生死锁。因此,对于第②、⑤种情况,只要m的资源加1,就不会发生死锁;对于第④种情况,m资源需要加2,系统就不会发生死锁。