Chapter9 死锁 - abowloflrf/os-note GitHub Wiki

死锁

概念

一个进程集合中的每个进程都在等待只能由该集合中的其他进程才能引发的事件

一组竞争系统资源的进程由于相互等待而出现的永久阻塞

产生死锁的四个必要条件

  1. 互斥等待
  2. 占有及等待
  3. 不可剥夺
  4. 环路等待

如何处理死锁

  1. OS处理
  2. 程序本身预防

死锁的检测与恢复

检测

恢复

  1. 剥夺法恢复
  2. 回退发恢复
  3. 杀死进程

死锁的避免

安全状态与不安全状态

银行家算法

死锁的预防

使产生死锁的四个必要条件之一至少有一个不成立

  1. 破坏互斥条件
  2. 破环不可剥夺条件
  3. 破坏占用及等待条件
  4. 破坏环路等待条件