我知道循环请求会导致死锁,但我想知道以下是否也会导致死锁......
我不清楚,但我也认为如果“由于两个或多个程序/进程因完成操作而需要另一方的响应而导致失败或无法执行”
这是否意味着如果进程2和进程4都需要R7,这将导致死锁? (对于多个进程请求的资源R5和R4相同)
答案 0 :(得分:1)
使用图片中的符号的最简单的死锁图是当两个进程都需要相同的两个资源时。例如,如果您的示例流程P2
依赖于资源R5
,则可能会出现死锁。假设P2
和P4
都同时请求R7
和R5
,P2
锁定R7
和P4
锁定{{} 1}}。然后R5
正在等待P2
并且R5
正在等待P4
,也就是说,每个人都在等待另一个人释放锁定。这是一个很小的例子。
在您的情况下,没有这种可能性,因为这两个不同的进程不会共享两个资源。唯一有问题的是R7
。如果存在与P4
或P2
的争用,那么,P7
将先执行(没问题),否则另一个进程先执行,解锁资源,并允许{{1执行(也没问题)。