资源分类:
可重用资源:课被多个进程多次使用分为可抢占资源和不可抢占资源
例如:CPU处理器,I/O部件,内存,文件,数据库,信号量
可消耗资源:只可使用一次,可创建和销毁的资源
例如:信号,中断,资源
产生 死锁的必要条件:
互斥使用
占有并等待
不可抢占
循环等待
资源分配图:
资源类:方框
进程类:圆圈
死锁定理:
如果资源分配图中无环路则没有死锁,有环路可能会有死锁(如果每个资源只有一个资源实例则肯定有死锁)
化简:先找到一个只有分配边的节点,去掉后将指向该节点的分配边分配给另外等待该资源的节点
解决死锁的方法:
死锁预防:破坏死锁的四个必要条件
1.破坏互斥使用和资源独占条件:
使用SPOOLing技术或其他资源转换技术2.破坏占有并等待条件:
一次性申请所有需要的资源
3.破坏不可抢占技术:
可抢占,优先级
4.破坏循环等待条件
资源有序分配法
死锁避免
银行家算法
死锁检测与解除
检测:检测算法
设置资源分配表和进程等待表
解除:
roll back
撤销所有死锁进程