📜  分布式系统中的死锁检测

📅  最后修改于: 2022-05-13 01:56:11.388000             🧑  作者: Mango

分布式系统中的死锁检测

先决条件——死锁介绍、死锁检测
在死锁检测的集中式方法中,使用了两种技术,即:完全集中式算法和Ho Ramamurthy 算法(一阶段和两阶段)。

  • 完全中心化的算法——
    在 n 个站点的网络中,选择一个站点作为控制站点。该站点负责死锁检测。它可以控制系统的所有资源。如果站点需要资源,它会向控制站点请求资源,控制站点会分配和取消分配资源,并维护等待图。并且每隔一段时间,它会检查等待图以检测循环。如果循环退出,则将系统声明为死锁,否则系统将继续工作。这种技术的主要缺点如下:
    1. 一个站点甚至必须发送请求以使用它自己的资源。
    2. 存在幻象死锁的可能性。
  • HO Ramamurthy(两阶段算法)–
    在这种技术中,资源状态表由中央或控制站点维护,如果检测到一个循环,则系统首先不会被声明为死锁,当系统被分配时再次检查循环,其他一些资源是空的或被释放的由网站在每一个瞬间。现在,在检查是否再次检测到循环之后,系统被声明为死锁。这种技术减少了幻象死锁的可能性,但另一方面时间消耗更多。
  • HO Ramamurthy(一阶段算法)–
    在该技术中,如果在进程和资源表中都检测到循环,则中央或控制站点维护资源状态表和进程表,则系统被声明为死锁。这种技术减少了时间消耗,但增加了空间复杂度。