首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >死锁检测

死锁检测
EN

Stack Overflow用户
提问于 2011-11-08 04:21:20
回答 1查看 494关注 0票数 1

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

代码语言:javascript
复制
   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放弃其资源

代码语言:javascript
复制
    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放弃了它的资源。

代码语言:javascript
复制
    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

希望到目前为止我是在正确的轨道上。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-08 04:28:00

当进程处于"have A,need B“状态,而其他进程处于"have B,need A”状态时,就会发生死锁。

如果我没看错您的表,那么这将指示一个死锁:

代码语言:javascript
复制
   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有2个资源A,并且需要源B,没有更多的B可用。

直到有更多的资源A或B可用,才能解决死锁。这将意味着P0或P1必须放弃部分分配(或者P2+也会这么做)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8042120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档