索引 / 001 ZH-CN
计算机系统:程序员的视角 cover

计算机科学

计算机科学

计算机系统:程序员的视角

Randal E. Bryant and David R. O'Hallaron

英文原名: Computer Systems: A Programmer's Perspective

以程序员为中心,贯通数据表示、机器代码、内存、进程、链接、网络与并发的计算机系统导论。

难度等级
中级
学术层次
本科
计算机系统C语言汇编语言内存层次操作系统网络并发

01 / 经典教材推荐

经典教材推荐

引用

Bryant, R. E., & O'Hallaron, D. R. (2015). Computer Systems: A Programmer's Perspective (3rd ed.). Pearson.

为什么重要

本书把程序员编写的代码与支撑代码运行的硬件和操作系统机制连接起来。它填补了入门编程与计算机体系结构、编译器、操作系统和网络等高级课程之间的系统层空缺。

核心概念

数据具有机器含义

整数、浮点数、指针和字符串都是有限的比特模式。理解这些表示方式,才能解释溢出、精度、可移植性和许多安全问题。

程序会成为进程

编译、链接、加载、异常、信号和进程构成一条连续的机制链。理解这条链,才能分析程序的性能和行为,而不是把操作系统当作黑箱。

内存是一种层次结构

缓存、虚拟内存和局部性决定了计算成本。本书让读者看到,性能不仅取决于处理器速度,也取决于程序结构。

并发改变推理方式

线程、同步和共享状态会引入普通顺序推理无法覆盖的交错执行。程序正确性因此需要明确的协调机制。

阅读方法

选取一个小型 C 程序,从源代码追踪到机器指令,再跟随它的内存访问和进程状态。目标不是背诵汇编,而是理解性能和正确性问题中哪些抽象仍然可见。

结语

《计算机系统:程序员的视角》是计算机科学中的桥梁型教材,为程序员提供设计更快、更安全、更具可移植性的软件所需的系统直觉。