第10章 内核同步方法

系统比较原子操作、自旋锁、读写锁、信号量、互斥体、完成量、顺序锁、抢占控制与内存屏障。 覆盖24个正式目录层级。

为什么从这个问题开始

、、、、共同构成本章坐标。系统比较原子操作、自旋锁、读写锁、信号量、互斥体、完成量、顺序锁、抢占控制与内存屏障。

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

常见误区

四类样本与验收

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

练习

小结

  • 原子操作:连接“确认执行上下文”的源码对象与运行证据。
  • 自旋锁:连接“判断能否睡眠”的源码对象与运行证据。
  • 互斥体:连接“评估读写比例”的源码对象与运行证据。
  • 顺序锁:连接“选择同步原语”的源码对象与运行证据。
  • 内存屏障:连接“规定内存顺序”的源码对象与运行证据。
  • 本页24个正式目录层级全部进入源码实验链。

术语表

讨论

评论区加载中…