理解死锁
一. 死锁
理解模型: 单向桥模型, 单身狗模型
二. 死锁的4个必要条件
1. 互斥
2. 非持有并等待
3. 非强占
4. 循环等待
三. 资源
1. 可重用资源
CPU, 数据库, 信号等
2. 消耗资源
中断, 信号等
四. 处理死锁的三种方法
由应用程序处理死锁, 操作系统忽视死锁.
1. 死锁预防
去掉四个必要条件之一.
缺点: 资源利用效率低.
2. 死锁避免
使用前先判断, 只允许不会出现死锁的进程执行.
进程必须先提供资源的最大数目.
银行信用卡模型.
2.1. 银行家算法
OS 资源 申请资源的线程
沙盒演戏 - 即模拟分配, 看分配之后是否满足需求, 如果满足说明安全.
3. 死锁检测和恢复
检测到死锁状态后, 进行恢复
3.1. 死锁检测算法
允许系统进入死锁状态