CSAPP 系统漫游
CsappSystemTour
对应 CSAPP 第 1 章「计算机系统漫游」。交互式展示一个 C 程序从源码到执行的全过程:编译→链接→加载→执行。可视化数据在处理器、缓存、内存、I/O 间的流动,理解 Amdahl 定律。
从源代码到执行:一个程序的完整旅程
CSAPP 第 1 章展示了信息就是位 + 上下文。一个 C 程序从 hello.c 到最终输出,经历了编译系统的转换和硬件的执行。 点击「播放」观察数据在各阶段的流动。
源代码
hello.c — 程序员编写的 C 源码
阶段 1 / 7
Amdahl 定律:并行加速的极限
Amdahl 定律告诉我们:系统的加速比受限于串行部分的比例。即使使用无限多个处理器,加速比也有上限。 调整处理器数量,观察不同场景下的加速效果。
2
| 场景 | 串行比例 | 2 处理器加速比 | 理论极限 |
|---|---|---|---|
| 向量加法 | 1% | 1.98x | 100x |
| 矩阵乘法 | 5% | 1.90x | 20x |
| 排序算法 | 10% | 1.82x | 10x |
| 图遍历 | 20% | 1.67x | 5x |
💡 核心洞察:当串行比例为 10% 时,即使使用 64 个处理器,加速比也只有 5.7x。 这就是为什么优化串行部分比简单增加处理器数量更重要—— 也是 CSAPP 强调「理解程序行为」的原因。
关联教材
以下教材与本沙盒涉及的抽象层级相关,建议系统学习:
关联教材章节
以下教材章节与本沙盒涉及的抽象层级相关,建议配合阅读:
第1章深入理解计算机系统
计算机系统漫游
勿以浮沙筑高台
系统概览抽象层次Amdahl定律
第2章深入理解计算机系统
信息的表示和处理
我们生活在比特组成的世界
十六进制补码浮点数位运算
第3章深入理解计算机系统
程序的机器级表示
有时候你要学会像机器一样思考
x86-64汇编寻址模式栈帧过程调用
第4章深入理解计算机系统
处理器体系结构
万丈高楼平地起
Y86-64流水线控制逻辑流水线冒险
第5章深入理解计算机系统
优化程序性能
我们可以做的更好
编译器优化循环展开并行性存储器山
第6章深入理解计算机系统
存储器层次结构
万能的金字塔模型
SRAM/DRAM缓存局部性存储器山
第7章深入理解计算机系统
链接
欢迎来到灰色地带
静态链接目标文件符号解析重定位
第8章深入理解计算机系统
异常控制流
操作系统:唯一的使命就是帮助程序运行
异常进程系统调用信号
第9章深入理解计算机系统
虚拟内存
假装我们有用不完的物理内存
虚拟地址页表TLB内存映射
第10章深入理解计算机系统
系统级I/O
务必搞清楚你自己正在和整个系统的哪一层打交道
文件描述符RIO包I/O重定向
第12章深入理解计算机系统
并发编程
并发与并行,傻傻分不清楚?
线程互斥锁信号量生产者-消费者
第1章计算机系统要素
布尔逻辑
从 NAND 门开始
布尔代数逻辑门NAND万能性
学习路径推荐
建议按以下顺序学习,循序渐进掌握计算机科学:
使用说明
- •调整参数观察行为变化,实时反馈
- •状态自动编码到 URL,可直接分享给他人
- •支持键盘操作(Tab 切换、方向键调整)