第9章 内核同步介绍

从临界区、竞争来源、保护对象、死锁、争用和可扩展性建立内核同步问题模型。 覆盖10个正式目录层级。

为什么从这个问题开始

、、、、共同构成本章坐标。从临界区、竞争来源、保护对象、死锁、争用和可扩展性建立内核同步问题模型。

原书基于Linux 2.6.34,正文先还原书中对象、API和控制路径,再把现代内核差异作为显式迁移检查。CFS、tasklet、BKL、基树、单队列块层、旧回写线程等机制不能被现代实现悄悄替换,也不能不加说明地当作当前代码。

常见误区

四类样本与验收

样本只改变什么必查证据通过条件
基线固定提交、配置与输入对象、上下文、状态和日志与预测一致
边界容量、亲和、长度或时序第一处饱和或拒绝边界可解释
失败一个指针、锁序或异步故障首错栈、字段和责任层故障可定位
恢复撤销设置或恢复快照残留对象与同输入重放回到基线

练习

小结

  • 临界区:连接“列出共享状态”的源码对象与运行证据。
  • 竞争条件:连接“识别并发来源”的源码对象与运行证据。
  • 加锁:连接“写出不变量”的源码对象与运行证据。
  • 死锁:连接“划定临界区”的源码对象与运行证据。
  • 可扩展性:连接“证明锁序无环”的源码对象与运行证据。
  • 本页10个正式目录层级全部进入源码实验链。

术语表

讨论

评论区加载中…