考虑以下运行n个进程的系统的快照。进程i持有资源R的Xi个实例,1 <= i <= n。当前,R的所有实例都被占用。此外,对于所有i,进程i在保留其已有的Xi实例的同时,提出了一个额外的Yi实例的请求。正好有两个过程p和q,使得Yp = Yq =0。以下哪一项可以作为保证系统不会接近死锁的必要条件?
(A)最小值(Xp,Xq)<最大值(Yk)其中k!= p和k!= q
(B) Xp + Xq> = min(Yk)其中k!= p和k!= q
(C)最大(Xp,Xq)> 1
(D)分钟(Xp,Xq)> 1答案: (B)
解释:
死锁是指两个或两个以上进程各自等待另一个进程释放资源,或者两个以上进程正在等待资源时的特定条件。
解决方案:
保证没有死锁的必要条件,这意味着如果不满足此条件,则不可能发生死锁。过程p和q都没有其他要求;他们两个都可以完成释放Xp + Xq资源的操作,而无需任何其他资源。
使用此方法,仅在满足条件B的情况下,我们才能完成另一个处理。如果p和q释放的资源足以用于等待Yk资源的另一个进程,则系统不会陷入死锁。
即Xp + Xq> min(Yk)其中k!= p和k!= q
注意:选项B仅确保系统可以从当前状态继续运行。它不能保证在所有进程完成之前不会出现死锁。
请参阅https://www.geeksforgeeks.org/operating-systems-set-15/的问题4
参考 :
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/7_Deadlocks.html
该解决方案由Nitika Bansal提供
这个问题的测验