Overview
- 書籍:Computer Systems: A Programmer's Perspective, 3rd Edition (Global Edition) — Randal E. Bryant & David R. O'Hallaron,共 12 章 + 附錄 A。
- 三大部分:
- Part I 程式結構與執行(Ch2–Ch6):資料表示、機器級程式、處理器架構、效能最佳化、記憶體階層。
- Part II 在系統上執行程式(Ch7–Ch9):連結、例外控制流、虛擬記憶體。
- Part III 程式間互動與通訊(Ch10–Ch12):系統級 I/O、網路程式設計、並行程式設計。
- Ch1 為全書導論。
- 建議學習順序(依賴關係):
- Ch2 → Ch3 → Ch4 / Ch5(機器碼是處理器架構與最佳化的基礎)
- Ch6 → Ch9(記憶體階層是虛擬記憶體的前置)
- Ch7 建議於 Ch3 之後(需理解目的碼與位址)
- Ch8 → Ch10 / Ch11 → Ch12(行程與訊號是 I/O、網路與並行的前置)
Topic Map
Practice Notes
| 工具 |
用途 |
連結 |
| 面試陷阱題 |
彙整各章易錯觀念與面試常考陷阱 |
面試陷阱題 |
| 速查表 |
常用公式、指令、API 快速查閱 |
速查表 |
Tag Index
| Tag |
說明 |
Level |
| csapp |
全 vault 頂層標籤 |
top |
| concept |
概念筆記 |
type |
| practice |
練習題筆記 |
type |
| dashboard |
Dashboard 檔案 |
type |
| systems-overview |
Ch1 系統總覽 |
domain |
| data-representation |
Ch2 資料表示 |
domain |
| machine-code |
Ch3 機器級程式 |
domain |
| processor-arch |
Ch4 處理器架構 |
domain |
| performance |
Ch5 效能最佳化 |
domain |
| memory-hierarchy |
Ch6 記憶體階層 |
domain |
| linking |
Ch7 連結 |
domain |
| exceptional-control-flow |
Ch8 例外控制流 |
domain |
| virtual-memory |
Ch9 虛擬記憶體 |
domain |
| system-io |
Ch10 系統級 I/O |
domain |
| network-programming |
Ch11 網路程式設計 |
domain |
| concurrency |
Ch12 並行程式設計 |
domain |
| compilation-system |
編譯系統(父域:systems-overview) |
detail |
| amdahls-law |
Amdahl 定律(父域:systems-overview) |
detail |
| bit-operations |
位元運算(父域:data-representation) |
detail |
| twos-complement |
二補數(父域:data-representation) |
detail |
| integer-overflow |
整數溢位(父域:data-representation) |
detail |
| ieee-754 |
IEEE 754 浮點(父域:data-representation) |
detail |
| x86-64 |
x86-64 架構(父域:machine-code) |
detail |
| assembly |
組合語言(父域:machine-code) |
detail |
| condition-codes |
條件碼(父域:machine-code) |
detail |
| stack-frame |
堆疊框架(父域:machine-code) |
detail |
| buffer-overflow |
緩衝區溢位(父域:machine-code) |
detail |
| y86-64 |
Y86-64 ISA(父域:processor-arch) |
detail |
| hcl |
HCL 硬體描述(父域:processor-arch) |
detail |
| pipelining |
管線化(父域:processor-arch) |
detail |
| data-hazard |
資料冒險(父域:processor-arch) |
detail |
| control-hazard |
控制冒險(父域:processor-arch) |
detail |
| loop-unrolling |
迴圈展開(父域:performance) |
detail |
| instruction-parallelism |
指令級平行(父域:performance) |
detail |
| branch-prediction |
分支預測(父域:performance) |
detail |
| profiling |
效能分析(父域:performance) |
detail |
| cache |
快取(父域:memory-hierarchy) |
detail |
| locality |
區域性(父域:memory-hierarchy) |
detail |
| dram |
DRAM(父域:memory-hierarchy) |
detail |
| ssd |
SSD(父域:memory-hierarchy) |
detail |
| elf |
ELF 格式(父域:linking) |
detail |
| symbol-resolution |
符號解析(父域:linking) |
detail |
| relocation |
重定位(父域:linking) |
detail |
| dynamic-linking |
動態連結(父域:linking) |
detail |
| exceptions |
例外(父域:exceptional-control-flow) |
detail |
| process-control |
行程控制(父域:exceptional-control-flow) |
detail |
| error-handling |
錯誤處理(父域:exceptional-control-flow) |
detail |
| signals |
訊號(父域:exceptional-control-flow) |
detail |
| nonlocal-jump |
非區域跳轉(父域:exceptional-control-flow) |
detail |
| address-translation |
位址轉譯(父域:virtual-memory) |
detail |
| tlb |
TLB(父域:virtual-memory) |
detail |
| page-table |
頁表(父域:virtual-memory) |
detail |
| malloc |
動態配置(父域:virtual-memory) |
detail |
| garbage-collection |
垃圾回收(父域:virtual-memory) |
detail |
| memory-bugs |
記憶體錯誤(父域:virtual-memory) |
detail |
| unix-io |
Unix I/O(父域:system-io) |
detail |
| file-descriptor |
檔案描述子(父域:system-io) |
detail |
| rio |
RIO 套件(父域:system-io) |
detail |
| client-server |
主從式模型(父域:network-programming) |
detail |
| tcp-ip |
TCP/IP(父域:network-programming) |
detail |
| sockets |
Sockets(父域:network-programming) |
detail |
| http |
HTTP(父域:network-programming) |
detail |
| io-multiplexing |
I/O 多工(父域:concurrency) |
detail |
| threads |
執行緒(父域:concurrency) |
detail |
| semaphores |
號誌(父域:concurrency) |
detail |
| race-condition |
競爭條件(父域:concurrency) |
detail |
| deadlock |
死結(父域:concurrency) |
detail |
| thread-safety |
執行緒安全(父域:concurrency) |
detail |
Tag rules:detail 標籤必須連同父域標籤一起出現;僅可使用本註冊表中的標籤;全部為 kebab-case 英文。
Weak Areas
Non-core Topic Policy
| 書中內容 |
處理方式 |
| Preface / About the Authors / References / Index |
Excluded(非學習內容) |
| Appendix A Error Handling |
已併入 Unix 錯誤處理 |
| Homework Problems |
已改編入各章練習題檔 |