我知道循环请求会导致死锁,但我想知道以下是否也会导致死锁......
我不清楚,但我也认为如果“由于两个或多个程序/进程在完成操作之前都需要对方的响应而导致失败或无法继续”
这是否意味着如果进程 2 和进程 4 都需要 R7,这将导致死锁?(多个进程请求的资源 R5 和 R4 相同)
我知道循环请求会导致死锁,但我想知道以下是否也会导致死锁......
我不清楚,但我也认为如果“由于两个或多个程序/进程在完成操作之前都需要对方的响应而导致失败或无法继续”
这是否意味着如果进程 2 和进程 4 都需要 R7,这将导致死锁?(多个进程请求的资源 R5 和 R4 相同)
使用图片中的符号最简单的死锁图是当两个进程各自需要相同的两个资源时。例如,如果在您的示例进程中P2
依赖于 resource R5
,则可能会出现死锁。假设两个P2
和P4
每个请求都R7
和R5
,即P2
锁定R7
和P4
锁定R5
。then P2
is waitingR5
和P4
is waiting for R7
,即各自在等待对方释放锁。这是一个最小的例子。
在您的情况下,没有这种可能性,因为两个不同的进程从未共享过两个资源。唯一有问题的是P4
。如果与P2
or发生争用P7
,则要么P4
先执行(没问题),要么先执行另一个进程,解锁资源并允许P4
执行(也没问题)。