【发布时间】:2021-12-31 15:26:04
【问题描述】:
我必须解决这个问题:
两个进程,A 和 B,每个都需要三个记录,1、2 和 3,在一个 数据库。如果 A 按 1、2、3 的顺序要求它们,B 要求它们 同样的顺序,死锁是不可能的。但是,如果 B 要求 它们按 3、2、1 的顺序排列,则可能出现死锁。带三个 资源,有3个!或六种可能的组合,其中每个 进程可以请求它们。所有组合的比例是多少 保证没有死锁?
我在一本书中看到了这个问题的解决方案:
123 无死锁
132 无死锁
213 可能的死锁
231 可能的死锁
312 可能的死锁
321 可能的死锁由于六个中的四个可能导致僵局,因此有 1/3 的机会 避免陷入僵局和获得 2/3 的机会。
但我不知道这个解决方案背后的逻辑是什么。
有人能解释一下为什么这个解决方案是正确的吗?
我搜索了很多,但没有找到任何东西,而且这个问题的所有答案都没有明确的解释。
【问题讨论】: