这个分类用于理解程序运行时依赖的底层机制,把内存映射、分配器、线程可见性与内存顺序连接起来。
先建立总模型
这一模块连接两个层面:单线程里地址怎样映射、内存怎样分配;多线程里写入怎样通过同步关系被另一个线程合法观察。不要用“缓存刷新了”同时解释虚拟内存和并发可见性。
两条不同的数据路线
内存:虚拟地址 -> 页表 -> 物理页 -> 分配器中的内存块
并发:data=42 -> release 写 ready -> acquire 读 ready -> 合法读取 data
推荐顺序
- 先学习虚拟内存、页、堆栈与 malloc。
- 再学习原子操作、happens-before 与内存顺序。