Skip to main content

4. 死锁

1. 死锁详解(预防、避免、检测、解除)

0. 思维导图

死锁思维导图

1. 什么是死锁?

什么是死锁1 什么是死锁2

2. 死锁、饥饿、死循环的区别

死锁、饥饿、死循环的区别1 死锁、饥饿、死循环的区别2

3. 死锁产生的四个必要条件

死锁产生的四个必要条件

4. 什么时候会发生死锁?

什么时候会发生死锁

5. 死锁的处理策略

死锁的处理策略

(1)预防死锁

① 破坏互斥条件

破坏互斥条件

② 破坏不可剥夺条件

破坏不可剥夺条件

③ 破坏请求和保持条件

破坏请求和保持条件

④ 破坏循环等待条件

破坏循环等待条件

(2)避免死锁

① 什么是安全序列?
  • 所谓安全序列

安全序列1 安全序列2 安全序列3 安全序列4 安全序列5

② 安全序列、安全状态、不安全状态、死锁之间的联系

安全序列、安全状态、不安全状态、死锁之间的联系 安全序列、安全状态、不安全状态、死锁之间的联系1

③ 避免系统进入不安全状态------银行家算法

银行家算法1 银行家算法2 银行家算法3 银行家算法4 银行家算法5 银行家算法1 银行家算法1 银行家算法1

  • 使用代码实现

银行家算法代码实现1 银行家算法代码实现2 银行家算法代码实现3

(3)死锁的检测和解除

死锁的检测和解除

① 死锁的检测

死锁的检测

  • 举个例子,可以消除所有边,即无死锁发生

无死锁发生1 无死锁发生2 无死锁发生3

  • 举个例子,不可消除所有边,即产生死锁

产生死锁1 产生死锁2 产生死锁3 产生死锁4

② 死锁的解除

死锁的解除