2.4 死锁资源数计算
本课核心知识点整理
📝 学习目标
- 说清楚:死锁资源数计算 是什么 / 解决什么问题
- 掌握常用公式与典型计算步骤
- 会根据题干关键词快速定位对应知识点
🎯 核心概念
- 死锁发生需同时满足互斥、占有并等待、不可剥夺、循环等待四个必要条件。
- 银行家算法通过安全性检查避免系统进入不安全状态。
- 资源分配图可用于分析进程与资源间的等待关系。
- 考试常要求判断是否存在安全序列或是否会死锁。
📖 概念解释
- 死锁:多个进程相互等待对方资源而永久阻塞。
- 安全状态:系统存在至少一个安全序列可使全部进程完成。
- 银行家算法:按最大需求与当前可用资源进行分配决策。
- 资源分配图:用图结构表示进程请求/占有资源关系。
🛠️ 相关技术罗列
- 先算 Need=Max-Allocation,再尝试构造安全序列。
- 若一轮找不到可执行进程,通常说明进入不安全状态。
- 资源图题先看是否形成环,再结合资源实例数判断死锁。
📊 关键对比表
| 对比主题 | 结论/考点 |
|---|---|
| 预防 | 破坏死锁必要条件之一 |
| 避免 | 动态分配前做安全性检查(银行家) |
| 检测 | 允许发生后再识别并解除 |
| 解除 | 剥夺资源、撤销进程或回滚恢复 |
📘 核心词汇
- 死锁:本课核心术语,做题时需能快速识别其定义与适用场景。
- 安全序列:本课高频术语,建议结合“定义 + 特点 + 题型”记忆。
- 银行家算法:本课核心术语,做题时需能快速识别其定义与适用场景。
- 资源分配图:常作为题干关键词出现,注意与相近概念的边界。
- Need:本课高频术语,建议结合“定义 + 特点 + 题型”记忆。
- Available:本课高频术语,建议结合“定义 + 特点 + 题型”记忆。
- 死锁资源数计算:本课核心术语,做题时需能快速识别其定义与适用场景。
- 占有并等待:本课高频术语,建议结合“定义 + 特点 + 题型”记忆。
🔍 知识扩展
- 高并发系统常用“超时+重试+资源有序申请”降低死锁风险。
- 建议把四个必要条件与对应破坏策略做成对照记忆。
🔍 关键解析
- 常考点1:死锁必要条件判定。
- 常考点2:银行家算法安全序列计算。
- 常考点3:资源分配图死锁判断。
⭐ 考点速记
- 常考点1:死锁必要条件判定。
- 常考点2:银行家算法安全序列计算。
- 常考点3:资源分配图死锁判断。
🧠 难点与易错点
- 易错:Need/Available 计算步骤漏减。
- 易错:把“不安全状态”误判为“已经死锁”。
- 易错:资源图成环时未结合资源实例数进一步判断。
🔑 关键词
操作系统、死锁资源数计算
🧪 模拟考试例题(按难度)
以下例题基于本节高频考点重构,重点覆盖概念识别、对比辨析与综合场景题:
⭐ 简单(概念识别 / 定义匹配)
单选
死锁产生的四个必要条件中,不包括:
单选
银行家算法用于:
单选
在单实例资源分配图中,若出现环路,通常表示:
⭐⭐ 中等(概念对比 / 关键词定位)
单选
银行家算法中 Need 矩阵的定义是:
单选
若系统通过“一次性申请全部资源”来减少死锁风险,本质是在破坏:
⭐⭐⭐ 较难(综合 / 题干场景化)
单选
安全序列的判定目标是验证:
单选
关于死锁“预防/避免/检测恢复”的关系,正确的是: