T26 死锁预防 死锁避免 死锁检测与解除

  • 死锁预防:通过破坏死锁的必要条件(互斥、占有且等待、不可剥夺、循环等待)来防止死锁的发生
    • 例如:要求进程在请求资源前释放已占有的资源,或使用资源分配图检测循环等待。
    • 预防 - 源头避免
  • 死锁避免:在资源分配时动态检查系统状态,确保系统始终处于安全状态,从而避免死锁的发生。
    • 例如:银行家算法,根据进程的最大需求和当前资源分配情况,决定是否分配资源。
    • 避免 - 过程避免
  • 死锁检测与解除:允许死锁发生,但通过定期检测系统状态,发现死锁后采取措施(如终止进程或回收资源)来解除死锁
    • 例如:使用资源分配图等待图检测死锁,然后选择一个或多个进程终止以释放资源。
    • 检测 - 事后处理