死锁避免是一种事中策略:在每次资源分配前,检查分配后系统是否仍处于安全状态。如果安全则分配,否则拒绝。
Available(可用资源)、Max(最大需求)、Allocation(已分配)、Need(剩余需求,$Need = Max - Allocation$)。| 数据结构 | 含义 | 维度 |
|---|---|---|
| Available | 当前可用资源向量 | m 维 |
| Max | 最大需求矩阵 | $n \times m$ |
| Allocation | 已分配矩阵 | $n \times m$ |
| Need | 剩余需求矩阵(= Max − Allocation) | $n \times m$ |
| 考法 | 解题套路 |
|---|---|
| 安全性检查 | 找 $Need \leq Available$ 的进程,执行后释放资源,重复 |
| 判断是否安全 | 存在安全序列 → 安全;找不到 → 不安全 |
| 资源请求处理 | 检查 $Request \leq Need$ 与 $\leq Available$ 后试探分配,再做安全性检查 |
| Need 矩阵计算 | $Need = Max - Allocation$(不是 Max − Available) |
| 安全序列个数 | 可能多个,找到一个即可 |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。