死锁检测

时间:2011-11-07 20:21:20

标签: resources process deadlock

我不确定如何正确检测死锁。我的书为五个进程P0到P4和三个资源类型A,B和C提供了这个表。资源A有七个实例,资源类型B有两个实例,资源类型C有六个实例。这是时间T0的资源分配状态:

   Allocation    Request    Available
    A  B  C      A  B  C    A  B  C
P0  0  1  0      0  0  0    0  0  0
P1  2  0  0      2  0  2
P2  3  0  3      0  0  0
P3  2  1  1      1  0  0
P4  0  0  2      0  0  2

它继续说明系统没有处于死锁状态,但没有为解决问题的技术提供太多细节。任何人都可以为我分解它,以便我可以轻松地按照步骤尝试类似的问题吗?

我试图理解这个问题:

P0有1个资源B且不需要资源。 P0放弃其资源

    A  B  C      A  B  C    A  B  C
P0  0  0  0      0  0  0    0  1  0
P1  2  0  0      2  0  2
P2  3  0  3      0  0  0
P3  2  1  1      1  0  0
P4  0  0  2      0  0  2

P1有2个资源A,需要2个资源A和C.资源不足。 P2有3个资源A和C,不需要资源。 P2放弃其资源。

    A  B  C      A  B  C    A  B  C
P0  0  0  0      0  0  0    3  1  3
P1  2  0  0      2  0  2
P2  0  0  0      0  0  0
P3  2  1  1      1  0  0
P4  0  0  2      0  0  2

希望我到目前为止走上正轨。

1 个答案:

答案 0 :(得分:0)

当您处理状态为“有A,需要B”而某些其他进程处于“有B,需要A”时,会发生死锁。

如果我正确地读你的桌子,那么这将表明一个僵局:

   Allocation    Request    Available
    A  B  C      A  B  C    A  B  C
P0  0  1  0      1  0  0    0  0  0
P1  2  0  0      2  1  2

P0有资源B,需要资源A,没有更多资源A可用 P1有两个资源A,需要源B,没有更多的B可用。

在更多资源A或B可用之前,无法解决死锁。这意味着P0或P1必须放弃他们的一些分配(或P2 +做同样的事情)。