死锁问题_OS

目录

1. 死锁的概述

2. 产生死锁的4个必要条件

3.处理死锁问题的方法

4. 预防死锁

破坏互斥条件

破坏请求和保持条件

破环不可剥夺条件

破坏环路等待条件

5. 避免死锁

 安全状态

 6. 银行家算法

7. 死锁的检测和解除

 死锁定理

 8. 哲学家进餐问题


1. 死锁的概述

2. 产生死锁的4个必要条件

必要条件是指死锁一定具备的条件,但具备该条件的不一定是死锁。

 互斥条件

请求保持条件

不可剥夺条件

环路等待条件

3.处理死锁问题的方法

鸵鸟方法

预防死锁

避免死锁

检测死锁

解除死锁

检测死锁即事先不需要做任何限制性措施

4. 预防死锁

  预防死锁需要破坏死锁的4个必要条件中的一个或几个

破坏互斥条件

破坏请求和保持条件

 

破环不可剥夺条件

 破坏环路等待条件

 

 

 预防死锁的代价较高,计算机不采用。

5. 避免死锁

 安全状态

  死锁是不安全状态的一个子集

 

 

 6. 银行家算法

  银行家算法是最具代表性的避免死锁的算法

 

即:

先将请求矩阵和需求矩阵和可用矩阵分别进行比较

再进行资源试分配

再进行安全性算法 

 

 

 

注意试分配向量的构建

 

最后需要写出安全序列

 

 安全算法最后所有都是true才正确,即不会发生死锁。

7. 死锁的检测和解除

资源分配图的概念

 

有环路不一定有死锁

右图P2P4可以注入资源

 死锁定理

去掉边时注意归还资源

 

 

 

 

死锁的解除

目录

1. 死锁的概述

2. 产生死锁的4个必要条件

3.处理死锁问题的方法

4. 预防死锁

破坏互斥条件

破坏请求和保持条件

破环不可剥夺条件

 破坏环路等待条件

5. 避免死锁

 安全状态

 6. 银行家算法

7. 死锁的检测和解除

 死锁定理

死锁的解除

 8. 哲学家进餐问题


 8. 哲学家进餐问题

 

 

方法一:

方法二:

 

方法三: