Table of contents 本电子书信息 出版信息 出版者的话 中文版序一 中文版序二 译者序 前言 关于作者 第 1 章:计算机系统漫游 1.1 信息就是位 + 上下文 1.2 程序被其他程序翻译成不同的格式 1.3 了解编译系统如何工作是大有益处的 1.4 处理器读并解释储存在内存中的指令 1.5 高速缓存至关重要 1.6 存储设备形成层次结构 1.7 操作系统管理硬件 1.8 系统之间利用网络通信 1.9 重要主题 1.10 小结 第一部分:程序结构和执行 第 2 章:信息的表示和处理 2.1 信息存储 2.2 整数表示 2.3 整数运算 2.4 浮点数 2.5 小结 家庭作业 第 3 章:程序的机器级表示 3.1 历史观点 3.2 程序编码 3.3 数据格式 3.4 访问信息 第 4 章:处理器体系结构 第 5 章:优化程序性能 第 6 章:存储器层次结构 第二部分:在系统上运行程序 第 7 章:链接 7.1 编译器驱动程序 7.2 静态链接 7.3 目标文件 7.4 可重定位目标文件 7.5 符号和符号表 7.6 符号解析 7.7 重定位 7.8 可执行目标文件 7.9 加载可执行目标文件 7.10 动态链接共享库 7.11 从应用程序中加载和链接共享库 7.12 位置无关代码 7.13 库打桩机制 7.14 处理目标文件的工具 7.15 小结 家庭作业 第 8 章:异常控制流 8.1 异常 8.2 进程 8.3 系统调用错误处理 8.4 进程控制 8.5 信号 8.6 非本地跳转 8.7 操作进程的工具 8.8 小结 家庭作业 第 9 章:虚拟内存 9.1 物理和虚拟寻址 9.2 地址空间 9.3 虚拟内存作为缓存的工具 9.4 虚拟内存作为内存管理的工具 9.5 虚拟内存作为内存保护的工具 9.6 地址翻译 9.7 案例研究:Intel Core i7 / Linux 内存系统 9.8 内存映射 9.9 动态内存分配 9.10 垃圾收集 9.11 C 程序中常见的与内存有关的错误 9.12 小结 家庭作业 第三部分:程序间的交互和通信 第 10 章:系统级 I/O 10.1 Unix I/O 10.2 文件 10.3 打开和关闭文件 10.4 读和写文件 10.5 用 RIO 包健壮地读写 10.6 读取文件元数据 10.7 读取目录内容 10.8 共享文件 10.9 I/O 重定向 10.10 标准 I/O 10.11 综合:我该使用哪些 I/O 函数? 10.12 小结 家庭作业 第 11 章:网络编程 11.1 客户端—服务器编程模型 11.2 网络 11.3 全球 IP 因特网 11.4 套接字接口 11.5 Web 服务器 11.6 综合:TINY Web 服务器 11.7 小结 家庭作业 第 12 章:并发编程 12.1 基于进程的并发编程 12.2 基于 I/O 多路复用的并发编程 12.3 基于线程的并发编程 12.4 多线程程序中的共享变量 12.5 用信号量同步线程 12.6 使用线程提高并行性 12.7 其他并发问题 12.8 小结 家庭作业 附录 A:错误处理 参考文献 实验 实验总览 常见问题 实验 1:Data Lab README(讲师版) README(学生版) Writeup 实验 2:Bomb Lab README(讲师版) Writeup 实验 3:Attack Lab 实验 4:Architechture Lab 实验 5:Cache Lab 实验 6:Performance Lab 实验 7:Shell Lab 实验 8:Malloc Lab 实验 9:Proxy Lab