第三卷:深入计算机系统
程序写下 x + 1,机器却还要处理数值表示、指令执行和内存访问。本卷沿着这条路径走到进程、文件系统与虚拟化,看看哪些承诺来自语言,哪些来自操作系统和硬件。遇到程序偶尔出错时,“我电脑上能跑”可以当线索,暂时不能当结论。
先修知识
覆盖内容
前六章建立数据表示、处理器和存储层次的基础;第 7–14 章转向操作系统如何管理程序与资源;最后四章结合流水线、C 内存模型、汇编和性能测量,把各层重新接起来。
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
第 9 章
第 10 章
第 11 章
第 12 章
第 13 章
第 14 章
第 15 章
第 16 章
第 17 章
第 18 章
学完能做什么
- 解释整数溢出、浮点误差、缓存失效和缺页各自在什么层面发生。
- 跟踪进程与线程共享哪些资源,分析同步、死锁和文件持久化问题。
- 阅读短小的 C 与汇编片段,并用计时、性能计数器或系统观测验证瓶颈判断。
怎样使用这份目录
初学时按章推进,每遇到一项机制就找一个能观察它的小实验。带着故障来查阅时,可以直接进入相应章节:内存问题从第 5、6、16 章查起,线程卡住看第 9、11、12 章,性能问题先看第 18 章如何测量。实验前核对平台与编译选项,换一台机器后结果不同,本身也可能是线索。