📜  操作系统死锁检测和恢复

📅  最后修改于: 2020-12-14 09:28:14             🧑  作者: Mango

死锁检测和恢复

在这种方法中,操作系统没有应用任何机制来避免或防止死锁。因此系统认为肯定会发生死锁。为了消除死锁,操作系统会定期检查系统是否有死锁。如果发现任何死锁,则操作系统将使用某些恢复技术来恢复系统。

操作系统的主要任务是检测死锁。操作系统可以借助资源分配图检测死锁。

在单实例资源类型中,如果系统中正在形成一个循环,则肯定会出现死锁。另一方面,在多个实例化资源类型图中,仅检测一个周期还不够。通过将资源分配图转换为分配矩阵和请求矩阵,我们必须在系统上应用安全算法。

为了从死锁中恢复系统,OS均会考虑资源或进程。

对于资源

抢占资源

我们可以从资源(进程)的所有者那里抢夺一个资源,然后将其交给另一个进程,以期它会完成执行并更快地释放该资源。好吧,选择将被抢占的资源将有些困难。

回滚到安全状态

系统通过各种状态进入死锁状态。操作系统可以将系统回滚到先前的安全状态。为此,OS需要在每个状态下实施检查点。

当我们陷入僵局时,我们将回滚所有分配以进入先前的安全状态。

对于过程

杀死进程

终止进程可以解决我们的问题,但更大的问题是确定终止进程。通常,操作系统会杀死到目前为止已完成最少工作量的进程。

杀死所有进程

这不是建议的方法,但是如果问题变得非常严重,则可以实施。终止所有进程将导致系统效率低下,因为所有进程将从启动时再次执行。