直接回答:虚拟内存给每个进程提供一套独立、连续的虚拟地址空间,由硬件 MMU 和内核通过页表将虚拟页动态映射到物理页框,进程访问地址时由 MMU 完成翻译,访问未映射的页则触发缺页异常。

展开解析:它解决的核心问题有三个。一是隔离与安全:进程只能看到自己的地址空间,无法读写其他进程或内核的内存,崩溃互不影响。二是简化内存管理:程序员面对连续的大地址空间,不必关心物理内存的碎片化与具体布局,链接、加载、共享库(多个进程映射同一物理页)都因此简单。三是突破物理内存容量:按需分页把暂不用的页换出到磁盘(swap),可用内存"大于"物理内存;还带来写时复制(fork 共享页直到写入)、内存映射文件(mmap)等能力。代价是翻译开销(靠 TLB 缓存缓解)和换页抖动风险。追问方向:多级页表为什么省空间、TLB 的作用、交换与抖动的关系。