系统中有R类资源m个,现有n个进程互斥使用。·若每个进程对R资源的最大需求为w,那么当m、n、w取下表的值时,对于表8-3中的a~e五种方案,______可能会发生死锁。
A.a和b
B.b和c
C.c和d
D.c和e
参考答案:D
解析:[要点解析] 系统中同类资源分配不当将引起死锁。通常,若系统中有m个单位的存储器资源,它被n个进程使用,而每个进程都要求w个单位的存储器资源,则当[n×(w-1)+1]>m时,系统可能会引起死锁。
对于情况a:m=2,n=1,w=2,即系统中有两个资源,一个进程使用,该进程最多要求两个资源。由于,n×(w-1)+1=1×(2-1)+1=2=m,因此系统不会发生死锁。
对于情况b:m=2,n=2,w=1,即系统中有两个资源,两个进程使用,每个进程最多要求一个资源。因为n×(w-1)+1=2×(1-1)+1=1<m=2,所以系统不会发生死锁。
对于情况c:m=2,n=2,w=2,即系统中有两个资源,两个进程使用,每个进程最多要求两个资源。n×(w-1)+1=2×(2-1)+1=3>m=2,系统可能会引起死锁。理由是:采用轮流地为每个进程分配存储器资源的分配策略,则第1轮系统先为每个进程分配1个资源;第2轮系统中己无可供分配的资源,使各个进程都处于等待状态,导致系统发生死锁。
对于情况d:m=4,n=3,w=2,即系统中有4个资源,3个进程使用,每个进程最多要求两个资源。n×(w-1)+1=3×(2-1)+1=4=m,系统不会发生死锁。理由是:采用轮流地为每个进程分配存储器资源的分配策略,则第1轮系统先为每个进程分配1个存储器资源。系统中还剩1个资源,可以使其中的某个进程得到所需资源而运行完毕。当该进程释放所占用的2个资源后,可以使其他进程得到所需的存储器资源而运行完毕,所以不会发生死锁。
对于情况e:m=4,n=3,w=3,即系统中有4个资源,3个进程使用,每个进程最多要求3个资源。n×(w-1)+1=3×(3-1)+1=7>m=4,系统可能会引起死锁。理由是:采用的分配策略轮流地为每个进程分配,则第一轮系统先为每个进程分配一个存储器资源;第二轮系统为某一个进程分配一个资源之后,系统中己无可供分配的存储器资源,使各个进程都处于等待状态而导致系统发生死锁。