【发布时间】:2012-11-29 12:19:07
【问题描述】:
我知道循环请求会导致死锁,但我想知道以下是否也会导致死锁...
我不清楚,但我也认为如果“由于两个或多个程序/进程在完成操作之前都需要对方的响应而导致失败或无法继续”
这是否意味着如果进程 2 和进程 4 都需要 R7,这将导致死锁? (多个进程请求的资源 R5 和 R4 相同)
【问题讨论】:
标签: graph operating-system process
我知道循环请求会导致死锁,但我想知道以下是否也会导致死锁...
我不清楚,但我也认为如果“由于两个或多个程序/进程在完成操作之前都需要对方的响应而导致失败或无法继续”
这是否意味着如果进程 2 和进程 4 都需要 R7,这将导致死锁? (多个进程请求的资源 R5 和 R4 相同)
【问题讨论】:
标签: graph operating-system process
使用图片中的符号最简单的死锁图是两个进程各自需要相同的两个资源。例如,如果在您的示例进程中 P2 依赖于资源 R5,则可能会出现死锁。假设P2 和P4 都请求R7 和R5,那么P2 锁定R7 和P4 锁定R5。那么P2在等待R5,P4在等待R7,也就是在等待对方释放锁。这是一个最小的例子。
在您的情况下,没有这种可能性,因为两个不同的进程不会共享两个资源。唯一有问题的是P4。如果与P2 或P7 发生争用,例如,那么P4 将首先执行(没问题),否则另一个进程先执行,解锁资源,并允许P4 执行(也没有问题)。
【讨论】: