计算机操作系统 - 死锁
计算机操作系统 - 死锁
1 死锁的必要条件
已独占资源且不可剥夺,又去申请新的独占资源,形成了闭合等待链。共4个条件:
- 互斥:请求或已占有的资源某一时刻只能为一个进程所有。
- 不剥夺:进程所占有的资源只能由进程主动释放。
- 请求并保持:在独占资源后,申请其它被占资源(保持占有已有的独占资源)。
- 循环等待:请求并保持形成了环状链。
2 死锁预防
- 提前静态规划,避免死锁。
- 通过打破死锁的4个必要条件实现。
- 死锁预防是一种严格的方法(即需要更大的代价)。
3 死锁避免
- 运行时动态规划,避免死锁。
- 安全状态:存在一个执行顺序,使得能以非死锁完成全部任务的状态。安全状态一定是非死锁状态,非安全状态不一定是死锁状态。安全状态是比不死锁更严格的状态,死锁是比不安全更严格的状态。
- 安全性算法:银行家算法。若安全性算法通过,则一定存在一个安全序列;若系统处于安全性状态,则至少存在一个安全序列。若系统处于安全性状态,则安全性算法一定通过(注意安全性算法和安全性的等价关系)。
4 死锁检测与解除
- 死锁后,检测并解决死锁。
- 资源分配图:进程指向资源表示请求,资源指向进程表示已分配。
- 死锁定理:在资源分配图中,找出所有能执行完成的进程并消去进程和连线。如果存在不能消去的连线,则存在死锁。S为死锁的条件是当且仅当S状态的资源分配图是不可完全简化的。
- 死锁解除:剥夺资源;撤销进程;进程回退。
posted on 2020-10-31 17:24 amazzzzzing 阅读(563) 评论(0) 收藏 举报
浙公网安备 33010602011771号