保持和等待与循环等待有何不同?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (12)

我无法弄清楚死锁的两个条件是如何彼此不同的。保持和等待看起来像循环等待的子集。

提问于
用户回答回答于

保持和等待以及循环等待是发生死锁时满足的条件。

这意味着如果不满足这两个条件,您就不会陷入僵局。

保持和等待条件表明该进程持有可能(或可能不)其他进程所需的资源。这里的关键点是该进程持有这些资源,并且在它访问所请求的资源(由其他进程持有)之前不会释放它们。

循环等待条件表明存在一系列进程,其中每个进程正在等待另一个进程持有的资源。在这种情况下,它并不一定意味着进程持有另一个请求的资源,而是所有进程都在等待另一个进程持有的资源。

有关更多信息,请参阅这些文章

http://www.cs.yale.edu/homes/aspnes/pinewiki/Deadlock.html http://nob.cs.ucdavis.edu/classes/ecs150-1999-02/dl-cond.html

用户回答回答于

对于保持和等待,必须存在一个进程,该进程持有已分配给它的资源,同时等待其他进程当前持有的其他资源。然而,对于循环等待发生系统中的进程形成循环列表或链,其中列表中的每个进程正在等待列表中下一个进程持有的资源。

需要注意的是:循环等待的链(圆形列表)的形成必须是保持和等待的情况。

参考:http//www.personal.kent.edu/~rmuhamma/OpSystems/Myos/deadlockCondition.htm

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问5 回答
  • Dingda

    Dingda · 站长 (已认证)

    4 粉丝0 提问3 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券