amazzzzzing

导航

计算机操作系统 - 死锁

计算机操作系统 - 死锁

1 死锁的必要条件

已独占资源且不可剥夺,又去申请新的独占资源,形成了闭合等待链。共4个条件:

  • 互斥:请求或已占有的资源某一时刻只能为一个进程所有。
  • 不剥夺:进程所占有的资源只能由进程主动释放。
  • 请求并保持:在独占资源后,申请其它被占资源(保持占有已有的独占资源)。
  • 循环等待:请求并保持形成了环状链。

2 死锁预防

  • 提前静态规划,避免死锁。
  • 通过打破死锁的4个必要条件实现。
  • 死锁预防是一种严格的方法(即需要更大的代价)。

3 死锁避免

  • 运行时动态规划,避免死锁。
  • 安全状态:存在一个执行顺序,使得能以非死锁完成全部任务的状态。安全状态一定是非死锁状态,非安全状态不一定是死锁状态。安全状态是比不死锁更严格的状态,死锁是比不安全更严格的状态。
  • 安全性算法:银行家算法。若安全性算法通过,则一定存在一个安全序列;若系统处于安全性状态,则至少存在一个安全序列。若系统处于安全性状态,则安全性算法一定通过(注意安全性算法和安全性的等价关系)。

4 死锁检测与解除

  • 死锁后,检测并解决死锁。
  • 资源分配图:进程指向资源表示请求,资源指向进程表示已分配。
  • 死锁定理:在资源分配图中,找出所有能执行完成的进程并消去进程和连线。如果存在不能消去的连线,则存在死锁。S为死锁的条件是当且仅当S状态的资源分配图是不可完全简化的。
  • 死锁解除:剥夺资源;撤销进程;进程回退。

posted on 2020-10-31 17:24  amazzzzzing  阅读(563)  评论(0)    收藏  举报