考虑一个具有多种共享资源类型的计算机系统,每种资源类型有一个实例。每个实例一次只能由一个进程拥有。拥有和释放资源是通过持有全局锁 (L) 来完成的。以下方案用于拥有资源实例:
function OWNRESOURCE(Resource R)
Acquire lock L // a global lock
if R is available then
Acquire R
Release lock L
else
if R is owned by another process P then
Terminate P, after releasing all resources owned by P
Acquire R
Restart P
Release lock L
end if
end if
end function
关于上述方案,以下哪个选项是正确的?
(A)该方案确保不会发生死锁
(B)该方案可能导致活锁
(C)该计划可能导致饥饿
(D)该方案违反互斥性质答案: (A) (B) (C)
说明: (A)该方案确保无死锁操作,因为不存在等待条件。
(B)该方案可能会导致优先级反转问题,因此活锁是可能的。
(C)该计划可能导致饥饿。例如,优先级进程可以被重复调度并不断杀死低优先级进程。因此,低优先级的进程可能会饿死。
(D)满足互斥,因为一次只有一个进程可以获取和释放锁。
这个问题的测验