📜  门| GATE CS 2021 |套装2 |第53章

📅  最后修改于: 2021-06-28 23:08:19             🧑  作者: Mango

考虑具有多种共享资源类型的计算机系统,每种资源类型一个实例。每个实例一次只能拥有一个进程。拥有和释放资源是通过持有全局锁(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)满足互斥,因为一次只有一个进程可以获取和释放锁。
这个问题的测验