2.4 死锁 Deadlocked

基础概念

相关提炼内容见 deadlock

死锁的概念

死锁的定义

死锁产生的原因

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

~与「饥饿」的区别

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

死锁的处理策略

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

死锁预防

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

死锁避免

bankers-algorithm

死锁检测和解除

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