本文概述
在这种方法中, 操作系统没有应用任何机制来避免或防止死锁。因此系统认为肯定会发生死锁。为了消除死锁, 操作系统会定期检查系统是否有死锁。如果发现任何死锁, 则操作系统将使用某些恢复技术来恢复系统。
操作系统的主要任务是检测死锁。操作系统可以借助资源分配图检测死锁。
在单实例资源类型中, 如果系统中正在形成一个循环, 则肯定会出现死锁。另一方面, 在多个实例化资源类型图中, 仅检测一个周期还不够。通过将资源分配图转换成分配矩阵和请求矩阵, 我们必须在系统上应用安全算法。
为了从死锁中恢复系统, OS均会考虑资源或进程。
对于资源
抢占资源
我们可以从资源(进程)的所有者那里抢夺一个资源, 然后将其交给另一个进程, 以期它会完成执行并更快地释放该资源。好吧, 选择将被抢占的资源将有些困难。
回滚到安全状态
系统通过各种状态进入死锁状态。操作系统可以将系统回滚到先前的安全状态。为此, OS需要在每个状态下实施检查点。
当我们陷入僵局时, 我们将回滚所有分配以进入先前的安全状态。
对于线程
杀死进程
终止进程可以解决我们的问题, 但更大的问题是确定终止进程。通常, 操作系统会杀死到目前为止已完成最少工作量的进程。
杀死所有进程
这不是建议的方法, 但是如果问题变得非常严重, 则可以实施。终止所有进程将导致系统效率低下, 因为所有进程将从启动时再次执行。
评论前必须登录!
注册