考虑以下运行 n 个进程的系统的快照。进程 i 持有资源 R 的 Xi 实例,1 <= i <= n。目前,R 的所有实例都已被占用。此外,对于所有 i,进程 i 已请求额外的 Yi 实例,同时持有它已有的 Xi 实例。正好有两个进程 p 和 q 使得 Yp = Yq = 0。以下哪一项可以作为保证系统不会接近死锁的必要条件?
(A) min (Xp, Xq) < max (Yk) 其中 k != p 和 k != q
(B) Xp + Xq >= min (Yk) 其中 k != p 和 k != q
(C)最大 (Xp, Xq) > 1
(D)最小 (Xp, Xq) > 1答案:(乙)
解释:
死锁是指两个或多个进程各自等待另一个进程释放资源,或两个以上进程正在等待资源的特定情况。
解决方案:
保证无死锁的必要条件,即不满足此条件,就不可能发生死锁。过程 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 提供
这个问题的测验