本文概述
- 对于资源
- 对于线程
操作系统的主要任务是检测死锁。操作系统可以借助资源分配图检测死锁。
![操作系统死锁检测和恢复](http://www.srcmini.com/wp-content/uploads/2020/03/os-deadlock-detection-and-recovery.png)
文章图片
在单实例资源类型中, 如果系统中正在形成一个循环, 则肯定会出现死锁。另一方面, 在多个实例化资源类型图中, 仅检测一个周期还不够。通过将资源分配图转换成分配矩阵和请求矩阵, 我们必须在系统上应用安全算法。
为了从死锁中恢复系统, OS均会考虑资源或进程。
对于资源 抢占资源
我们可以从资源(进程)的所有者那里抢夺一个资源, 然后将其交给另一个进程, 以期它会完成执行并更快地释放该资源。好吧, 选择将被抢占的资源将有些困难。
回滚到安全状态
系统通过各种状态进入死锁状态。操作系统可以将系统回滚到先前的安全状态。为此, OS需要在每个状态下实施检查点。
当我们陷入僵局时, 我们将回滚所有分配以进入先前的安全状态。
对于线程 杀死进程
终止进程可以解决我们的问题, 但更大的问题是确定终止进程。通常, 操作系统会杀死到目前为止已完成最少工作量的进程。
杀死所有进程
【操作系统死锁检测和恢复】这不是建议的方法, 但是如果问题变得非常严重, 则可以实施。终止所有进程将导致系统效率低下, 因为所有进程将从启动时再次执行。
![操作系统死锁检测和恢复](http://www.srcmini.com/wp-content/uploads/2020/03/os-deadlock-detection-and-recovery1.png)
文章图片
推荐阅读
- 系统死锁简介
- 防止死锁解析
- 使用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测试与评估