内存管理
内存管理的难题在于物理内存有限,而程序对内存的需求没有上限。本章沿着“从直接分配到虚拟化”这条主线推进。
起步是基础概念:程序如何装入与链接,逻辑地址与物理地址空间如何对应,内存保护如何依托特权级实现。这三件事是后面所有分配方式共同依赖的前提。
第一种解法是连续分配。单一连续、固定分区、可变分区依次放松了限制,可变分区带来的内存碎片随即成为新问题,伙伴系统用整块划分与合并来应对碎片。
第二种解法是非连续分配。分页把内存切成固定大小的页框,分段按程序的逻辑结构切分,段页式结合两者;内存共享与内存保护说明这种灵活划分带来的额外收益。
第三种解法是虚拟内存。请求分页让页面按需调入,页面置换算法决定换出谁,工作集模型刻画进程真正的活跃页面,抖动则暴露出“装得太多反而更慢”的悖论。
读完本章,你应能解释逻辑地址到物理地址的转换过程,比较连续分配与非连续分配的取舍,并说明虚拟内存如何在容量与性能之间做出选择。
