跳到主要内容

2.4 死锁 Deadlocked

[!info] 基础概念 相关提炼内容见 deadlock。

死锁的概念​

死锁的定义​

死锁产生的原因​

  • 系统资源的竞争
  • 进程推进顺序非法
  • 死锁产生的必要条件
    • 互斥条件
    • 不剥夺条件
    • 请求并保持条件
    • 循环等待条件

~与「饥饿」的区别​

  • 进入「饥饿」状态的进程可以只有一个,而因循环等待条件而进入死锁状态的进程却必须大于等于两个
  • 处于「饥饿」状态的进程可以是一个就绪进程,如静态优先权调度算法时的低优先权进程,而处于死锁状态的进程必定是阻塞进程

死锁的处理策略​

  • 死锁约访
  • 避免死锁
  • 死锁的检测及解除

死锁预防​

  • 破坏互斥条件
  • 破坏不剥夺条件
  • 破坏请求并保持条件―预先静态分配方法,一次申请所有资源
  • 破坏循环等待条件―顺序资源分配法

死锁避免​

见 bankers-algorithm。

死锁检测和解除​

  • 资源分配图
  • 死锁定理
  • 死锁解除
    • 资源剥夺法
    • 撤销进程法
    • 进程回退法