学习资源
教材
Computer Systems: A Programmer’s Perspective, 3/E (CS:APP3e)
课程
CMU 15-213/18-213: Introduction to Computer Systems (ICS)
参考
全书目录
You may include them in your lectures with attribution, said the authors. Therefore, I incorporate the SVGs converted from their PDFs in the following pages.
1. 计算机系统速览
第一部分:程序的结构与执行(计组)
- 二进制、十六进制
- 位、字节、地址、字节顺序
- 整数、位运算、逻辑运算、四则运算
- 浮点数
- 汇编码、指令、寄存器
- 有效地址、读写内存
- 位运算、逻辑运算、四则运算
- 条件码、条件跳转、无条件跳转
- 运行期栈、函数调用、递归函数
- 数组、结构体、数据对齐
- 越界攻击、GOP 攻击
4. 处理器架构(计组)
- 缓存常量、缓存中间值
- 指令级并行、循环展开、重新结合
- 内存性能
- 性能检测工具
- SRAM、DRAM、硬盘、固态硬盘
- 数据局部性、指令局部性
- 缓存器、直接映射、集合关联、完全关联
第二部分:在系统上运行程序(OS)
- 目标文件、静态链接
- 符号、符号列表、符号解析
- 可执行文件、加载可执行文件
- 共享库、动态链接、位置无关代码
- 库打桩
- 异常、中断、系统调用、故障、终止
- 逻辑控制流、并发流、进程、上下文切换
- 创建进程、结束进程、收割子进程、加载程序
- 信号、信号处置器、屏蔽信号
- 物理地址、虚拟地址、地址翻译
- 页面列表、页面命中、页面故障
- 内存映射、共享资源、写时复制
- 动态内存、隐式链表、显式链表、分离链表、垃圾回收
第三部分:程序间互动及通信(OS + 网络)
- Unix I/O、开关文件、读写文件
- Robust I/O
- 文件元数据、目录内容
- 共享文件、读写重定向
- 计算机网络层次结构
- 客户端、服务端
- 网络、局域网、互联网、因特网
- IP 地址、端口号、套接字
- 网页服务、HTTP、动态内容
- 多进程并发、读写多路复用并发、多线程并发
- 共享变量、信号量、同步、互斥
- 多线程并行、强扩展性、弱扩展性
- 线程安全、再入函数、竞争、死锁
附录:异常处置
csapp.h
, csapp.c
4. Architecture Lab