408 知识网络
进入连续学习模式(11 个问题,逐个推进)

核心问题

这一部分为什么存在?

在完整笔记中阅读本节

概念体系

概念 要点 易考点 死锁 一组进程中每个都在等待同组内另一进程释放资源,无外力则永远僵持 至少 2 个进程,且死锁时必然 ≥2 个进程阻塞(2019 年 30 题 IV) 四必要条件 互斥、请求并保持、不可剥夺、循环等待 缺一不可:预防 = 破坏其一;循环等待是前三个共同导致的“结果性条件” 安全状态 存在至少一个安全序列,按此顺序推进所有进程都能完成 安全 ⇒ 无死锁;不安全 ≠ 已死锁(只是可能,2013 年 32 题 C 项陷阱)…

在完整笔记中阅读本节

实现机制

死锁发生的形式化判定(小计算题模板)

在完整笔记中阅读本节

方案比较

策略 何时介入 需要什么信息 资源利用率 能否确保无死锁 代表机制 预防 系统设计/申请时(静态) 无需预知需求 低 能(2019-30 II) 破坏四条件 避免 每次分配前(动态) 需预知每进程最大需求 中 能(保持在安全状态) 银行家算法 检测 + 解除 定期/资源下降时(事后) 当前申请-占用关系 高 不能(允许发生) 资源分配图化简 + 剥夺/撤销

在完整笔记中阅读本节

应用与考法

形态一:死锁判定小计算(“最少多少资源不会死锁 / 最少几进程可能死锁”):2009-25、2014-24、2021-31,套 n(k-1)+1 公式或资源分配图推理(2016-25:死锁进程数至少 2 个)。

在完整笔记中阅读本节

前后联系

向前依赖:OS-1 进程状态(阻塞是死锁的存在形式);OS-3 同步互斥(互斥与保持等待正是 P/V 使用方式引入的;哲学家问题是两者的交汇)。 向后引出: 死锁预防中的 Spooling 思想 → OS-8 I/O 管理; 资源抽象(设备、内存、文件都可死锁)→ 各资源管理章节; 调度算法中的饥饿 → OS-2(2016 年 45 题大题要求设计避免饥饿的动态优先级,把 nice/cpuTime/waitTime 综合——死锁与饥饿问…

在完整笔记中阅读本节

闭卷回忆链

为什么解决了互斥还会出新问题?(等待可能成环) 死锁的四个必要条件是什么?为什么缺一不可? 如何用公式快速判断“最少多少资源不死锁”?(n(k-1)+1) 预防死锁的四种破坏手段各牺牲什么? 银行家算法为什么不属于预防?它每次分配前做什么?(试分配 + 安全性检查) 安全状态的定义?安全、不安全、死锁三者什么关系?(安全⇒无死锁;不安全≠死锁) 安全性检查怎么一步步做?Need 和 Available 怎么更新? 已经死锁了怎么发现?(…

在完整笔记中阅读本节