本文概述
- 对于资源
- 对于线程
操作系统的主要任务是检测死锁。操作系统可以借助资源分配图检测死锁。
文章图片
在单实例资源类型中, 如果系统中正在形成一个循环, 则肯定会出现死锁。另一方面, 在多个实例化资源类型图中, 仅检测一个周期还不够。通过将资源分配图转换成分配矩阵和请求矩阵, 我们必须在系统上应用安全算法。
为了从死锁中恢复系统, OS均会考虑资源或进程。
对于资源 抢占资源
我们可以从资源(进程)的所有者那里抢夺一个资源, 然后将其交给另一个进程, 以期它会完成执行并更快地释放该资源。好吧, 选择将被抢占的资源将有些困难。
回滚到安全状态
系统通过各种状态进入死锁状态。操作系统可以将系统回滚到先前的安全状态。为此, OS需要在每个状态下实施检查点。
当我们陷入僵局时, 我们将回滚所有分配以进入先前的安全状态。
对于线程 杀死进程
终止进程可以解决我们的问题, 但更大的问题是确定终止进程。通常, 操作系统会杀死到目前为止已完成最少工作量的进程。
杀死所有进程
【操作系统死锁检测和恢复】这不是建议的方法, 但是如果问题变得非常严重, 则可以实施。终止所有进程将导致系统效率低下, 因为所有进程将从启动时再次执行。
文章图片
推荐阅读
- 系统死锁简介
- 防止死锁解析
- 使用RAG进行死锁检测
- 记一次springboot项目,maven引发的悲剧(Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServ
- Android 开发中Service完全解析
- tensorflow API _ 2 (tf.app.flags.FLAGS)
- android -------- Eclipse下的NDK配置环境
- 背单词app测试
- 背单词类APP测试与评估