Skip to main content

Reference and Selective Reading

You do not need to read the source books front-to-back for this module. Use the concept pages and practice pages first. Open these local chunks only when you need alternate exposition, more worked examples, or a deeper exercise lane.

Source Roles

SourceRoleWhy it is here
Operating Systems: Three Easy Pieces (Arpaci-Dusseau)Primary teaching sourceBest operational explanations of virtualization mechanisms: paging, TLBs, page-fault control flow, and policies. Uses worked numeric examples throughout
Operating System Concepts (Silberschatz)Formal supportComplementary treatment of replacement policies (LRU, LRU approximations, Clock) and a cleaner definition of fragmentation; better for policy surveys
Linux kernel docs (docs.kernel.org)Real-system supportAuthoritative reference for Linux-specific VM features: THP, NUMA, memory cgroups, PSI
LWN.net articlesModern wrinklesJournalistic deep-dives on THP, slab, memory compression, CXL, madvise evolution
Brendan Gregg performance pagesDiagnosis supportFlame graphs and perf-based memory performance recipes

Read Only If Stuck

Cluster 1: Address Spaces and Translation

Cluster 2: Page Tables and the TLB

Cluster 3: Page Replacement and Swapping

Cluster 4: Allocators and Fragmentation

Cluster 5: Practical Virtual Memory Effects

Optional Deep Dive

Concept-to-Source Map

Primary conceptBest source if stuckWhy this source
Physical vs virtual addressesOSTEP: The address spaceDefines the abstraction first, mechanism later
Base/bounds and segmentationOSTEP: Segmentation generalizedThe cleanest operational treatment of segments
PagingOSTEP: Paging overviewNumeric walkthrough with VPN/offset split
Multi-level page tablesOSTEP: Multi-level page tablesWorked example of tree-structured tables
Inverted page tablesOSTEP: Inverted page tablesThe frame-indexed alternative with tradeoffs
TLB as a cacheOSTEP: TLB basic algorithmThe operational model of the TLB
Demand paging and faultsOSTEP: Page-fault control flowStep-by-step fault path
Replacement policiesOSTEP: FIFO + OSC: LRU approximationsOSTEP for mechanism, OSC for the policy survey
Thrashing and working setOSC: Performance of demand pagingQuantitative cost model
Buddy + slab allocatorsOSTEP: Other approaches (buddy, segregated)The two-layer kernel allocator
Userland allocatorsOSC: User-level memory managers plus jemalloc docsSurvey + real implementation
Internal vs external fragmentationOSC: FragmentationClean definitions with worked examples
Copy-on-writeOSTEP: Copy-on-write mappingsThe mechanism in detail
mmap flavorsOSTEP: Other neat VM tricksShared, private, anonymous, file-backed in one place
Large pages, NUMALinux kernel docs: THP + NUMA policyBooks lag; kernel docs are the truth here