我不确定如何正确地检测死锁。我的书为五个进程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 2P1有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希望到目前为止我是在正确的轨道上。
发布于 2011-11-08 04:28:00
当进程处于"have A,need B“状态,而其他进程处于"have B,need 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 2P0有资源B,需要资源A,没有可用的资源A
P1有2个资源A,并且需要源B,没有更多的B可用。
直到有更多的资源A或B可用,才能解决死锁。这将意味着P0或P1必须放弃部分分配(或者P2+也会这么做)。
https://stackoverflow.com/questions/8042120
复制相似问题