死锁
死锁是不安全状态的一种。系统进入不安全状态就有可能回进入死锁状态
死锁产生的原因
- 系统资源的竞争
- 进程推进顺序非法
- 死锁产生的必要条件
- 互斥条件
解决:允许系统资源共享使用 - 不可剥夺条件
解决:释放已经保持的所有资源,待以后需要再重新申请 - 请求和保持条件
解决:采用预先静态分配方法 - 循环等待条件
解决:采用顺序资源分配法
- 互斥条件
解决死锁
- 预防死锁
破坏死锁的四个条件 - 避免死锁
允许进程动态地申请资源,但在资源分配前,先计算此次资源分配的安全性
算法:银行家算法 - 死锁的检测
死锁的条件是当前资源分配图是不可完全简化的
死锁定理:(简化当前资源分配图)- 找出即不阻塞又不孤点的进程
- 该进程释放所有资源
- 死锁的解除
- 资源剥夺法
- 撤销进程法
- 进程回退法