理解死锁

一. 死锁

理解模型: 单向桥模型, 单身狗模型

二. 死锁的4个必要条件

1. 互斥

2. 非持有并等待

3. 非强占

4. 循环等待

三. 资源

1. 可重用资源

CPU, 数据库, 信号等

2. 消耗资源

中断, 信号等

四. 处理死锁的三种方法

由应用程序处理死锁, 操作系统忽视死锁.

1.  死锁预防
去掉四个必要条件之一.

缺点: 资源利用效率低.

2. 死锁避免

使用前先判断, 只允许不会出现死锁的进程执行.

进程必须先提供资源的最大数目.

银行信用卡模型.

2.1. 银行家算法
OS 资源 申请资源的线程

沙盒演戏 - 即模拟分配, 看分配之后是否满足需求, 如果满足说明安全.

3. 死锁检测和恢复
检测到死锁状态后, 进行恢复

3.1. 死锁检测算法
允许系统进入死锁状态

原文地址:https://www.cnblogs.com/shaohsiung/p/9977587.html