虚拟内存(Virtual Memory)是操作系统中那个躲在衣柜里的“怪物”——它复杂、细节繁多,但理解它对于掌握系统如何工作至关重要。

本章内容涵盖了从基本的 基址/界限(Base and Bounds) 技术到现代全功能虚拟内存管理程序的演进。

核心思想在于抽象(Abstraction):操作系统为每个进程提供了一个假象,即它拥有自己独立的、巨大的、连续的私有内存空间(即地址空间)。用户程序中生成的每一个地址实际上都是虚拟地址

通过硬件(如 TLB,Translation Lookaside Buffer)和操作系统的紧密协作,这些虚拟地址被转换为真实的物理地址。这种机制不仅让编程变得更加容易(无需担心物理内存的具体位置),还提供了关键的隔离(Isolation)保护(Protection),防止错误程序破坏其他程序或操作系统的内存。

我们还将深入探讨页表(Page Tables)的设计——从简单的线性数组到复杂的多级页表,以及当物理内存不足时如何利用磁盘进行交换(Swap)。理解这些机制(Mechanisms)比单纯记忆策略(Policies,如 LRU)更为重要,因为建立正确的心理模型(Mental Model)能帮助你诊断性能问题(比如为什么 TLB 未命中会导致程序变慢)。