跳转至

第7章 综合案例与诊断

前六章分别学习了特权转换、调度、同步、虚拟内存、文件系统、设备和保护。本章不再引入大量新抽象,而是把它们放回一条真实控制流,并训练“提出假设—取得证据—排除替代解释”的诊断方法。

小结目录

为什么必须做综合路径

单独记住“read 是系统调用”远远不够。一次读取可能立即命中页缓存,也可能让线程睡眠;用户缓冲区可能触发缺页;设备可能通过 DMA 写入内存;返回前还要检查短读、信号和错误码。只有把条件分支画出来,才能解释性能和正确性现象。

诊断的基本循环

描述现象
  -> 建立分层假设
  -> 选择低扰动证据
  -> 比较时间线与计数器
  -> 排除不符合证据的解释
  -> 做最小可复现实验
  -> 验证修复没有转移瓶颈

学完应能做到

  • 解释缓存命中和缓存未命中时 read 路径的分叉。
  • 区分进程正在运行、可运行但未获 CPU、睡眠等待事件三种状态。
  • 为高 CPU、频繁切换、主要缺页、高 I/O 延迟分别选择第一批观测指标。
  • 识别工具输出的限制,不把相关性直接当因果关系。
  • 用前面章节的机制和权衡回答综合题,而不是只复述定义。