Posts /

死锁

06 Apr 2020

死锁


死锁条件

我的口头语:两个进程互相握有对方需要的资源,又不释放资源就是死锁的情况。

死锁的条件:占有且等待,循环等待,不可抢占,互斥(每个资源一次只能被一个进程使用)

死锁预防与避免

避免:银行家算法(资源分配后的状态是安全状态才分配)。

预防:破坏必要条件:

  1. 破坏不可抢占。进程不能获得所有资源则进入等待状态,等待期间其他资源将被释放,只有重新获得所有资源才能重新启动、执行。(可能会饥饿)
  2. 破坏请求与保持。①在每个进程开始执行前就申请所需要的全部资源,成功了才能启动、执行。②在申请所需要的资源时不占有其他资源。(可能会饥饿)
  3. 破坏循环等待。资源按紧缺程度排序编号,越紧缺序号越大,每个进程申请必须从小到大进行申请。