《深入理解计算机系统》(美)布赖恩特(Bryant,R.E.) 等

  • Post author:
  • Post category:其他


书籍:《深入理解计算机系统》(美)布赖恩特(Bryant,R.E.) 等

适合对象:对计算机感兴趣的朋友。

需要相关资料的可私信我。

2023.09.20更新完成。

先上个大纲框架图:


第一章:计算机系统漫游

主要知识点:解读全书结构框架,解释OS的原理和相关硬件软件。计算机系统是由硬件和系统软件组成,共同协作以运行应用程序。

1.1 信息就是位+上下文

1.2 程序被其他程序翻译成不同的格式

1.3 了解编译系统如何工作是大有益处的

1.4 处理器读并解释储存在存储器中的指令

1.5 高速缓存

1.6 形成层次结构的存储设备

1.7 操作系统管理硬件

1.8 利用网络系统和其他系统通信





第一部分 程序结构和执行





第二章:信息的表示和处理

主要知识点:解读全书结构框架,解释OS的原理和相关硬件软件。计算机系统是由硬件和系统软件组成,共同协作以运行应用程序。

2.1 信息存储

2.2 整数表示

2.3 整数运算

2.4 浮点


第三章 程序的机器级表示

主要知识点:机器语言、数据和过程。

3.1 历史观点

3.2 程序编码

3.3 数据格式

3.4 访问信息

3.5 算术和逻辑操作

3.6 控制

3.7 过程

3.8 数组分配和访问

3.9 异类的数据结构

3.10 对齐

3.11 综合:理解指针

3.12 现实生活:使用GDB调试器

3.13 存储器的越界引用和缓冲区溢出

3.14 *浮点代码


第四章 处理器体系结构

主要知识点:Y86指令。

4.1 Y86指令集体系结构

4.2 逻辑设计和硬件控制语言HCL

4.3 Y86的顺序(sequential)实现

4.4 流水线的通用原理

4.5 Y86的流水线实现

4.6 小结


第五章 优化程序性能

主要知识点:优化性能的方法

概览

5.1 优化编译器的能力和局限性

5.2 表示程序性能

5.3 程序示例

5.4 消除循环的低效率

5.5 减少过程调用

5.6 消除不必要的存储器引用

5.7 理解现代处理器

5.8 降低循环开销

5.9 转换到指针代码

5.10 提高并行性

5.11 综合:优化合并(Combing)代码的效果小结

5.12 分支预测和预测错误处罚

5.13 理解存储器性能

5.14 现实生活:性能提高技术

5.15 确认和消除性能瓶颈

5.16 小结


第六章 存储器层次结构

主要知识点:结构

6.1 存储技术

6.2 局部性

6.3 存储器层级结构

6.4 高速缓存存储器

6.5 编写高速缓存友好的代码

6.6 综合:高速缓存对程序性能的影响

6.7 综合:利用程序中的局部性

6.8 小结





第二部分 在系统上运行程序





第七章 链接

主要知识点:链接的过程和目的

概览

7.1 编译器驱动程序

7.2 静态链接

7.3 目标文件

7.4 可重定位目标文件

7.5 符号和符号表

7.6 符号解析

7.7 重定位

7.8 可执行目标文件

7.9 加载可执行目标文件

7.10 动态链接共享库

7.11 从应用程序中加载和链接共享库

7.12 *与位置无关的代码(PIC)

7.13 处理目标文件的工具

7.14 小结


第八章 异常控制流

主要知识点:异常处理

概览

8.1 异常

8.2 进程

8.3 系统调用和错误处理

8.4 进程控制

8.5 信号

8.6 非本地跳转

8.7 操作进程的工具

8.8 小结


第九章 测量程序执行时间

主要知识点:测量程序执行时间的策略和实现

概览

9.1 计算机系统上的时间流

9.2 通过间隔计数来测量时间

9.3 周期计数器

9.4 用周期计数器来测量程序执行时间

9.5 基于gettimeofday函数的测量

9.6 综合:一个实验协议

9.7 展望未来

9.8 现实生活:K次最优测量方法

9.9 得到的经验教训

9.10 小结


第十章 虚拟存储器

主要知识点:虚拟存储器的功能和实现

概览

10.1 物理和虚拟地址

10.2 地址空间

10.3 虚拟存储器作为缓存的工具

10.4 虚拟存储器作为存储器管理的工具

10.5 虚拟存储器作为存储器保护的工具

10.6 地址翻译

10.7 案例研究:Pentium/Linux存储器系统

10.8 存储器映射

10.9 动态存储器分配

10.10 垃圾收集

10.11 C程序中常见的与存储器有关的错误

10.12 扼要重述一些有关虚拟存储器的关键概念

10.13 小结




第三部分 程序间的交互和通信




第十一章 系统级I/O

主要知识点:I/O

概览

11.1 Unix I/O

11.2 打开和关闭文件

11.3 读和写文件

11.4 用Rio包进行健壮地读和写

11.5 读取文件元数据

11.6 共享文件

11.7 I/O重定向

11.8 标准I/O

11.9 综合:我该使用哪些I/O函数?

11.10 小结


第十二章 网络编程

主要知识点:模型、网络、IP、套接字和服务器

概览

12.1 客户端-服务器编程模型

12.2 网络

12.3 全球IP因特网

12.4 套接字接口

12.5 Web服务器

12.6 综合:Tiny Web服务器

12.7 小结


第十三章 并发编程

主要知识点:基于进程、基于I/O多路复用和基于线程三种并发编程

概览

13.1 基于进程的并发编程

13.2 基于I/O多路复用的并发编程

13.3 基于线程的并发编程

13.4 多线程程序中的共享

13.5 用信号量同步线程

13.6 综合:基于预线程化的并发服务器

13.7 其他并发性问题

13.8 小结



版权声明:本文为xiaoxiaoluckylucky原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。