虚拟内存基本思想
每个进程拥有自己的 地址空间,该空间被分割成多个块,每一块称作 一页(page),每一页有连续的地址范围。这些页被映射到物理内存,但并不是进程所有的页都必须在内存中才能运行。当进程引用到一部分在物理内存中的页时,就由硬件立刻执行映射。当引用到不在物理内存中的页时,则由操作系统负责将缺失的页装入物理内存并重新执行失败的指令。
虚拟地址(Virtual Address)
由程序产生的这些地址称为虚拟地址(逻辑地址),分成 页号(高位部分) 和 偏移量(地位部分) 两部分。它们构成了一个 虚拟地址空间(Virtual Address Space)。虚拟地址不会直接送到内存总线上,而是先被送到 内存管理单元(Memory Management Unit),MMU 把虚拟地址映射为物理内存地址。
分页(Paging)
虚拟地址空间按照固定大小划分成被称为 页面(page) 的若干单元,在物理内存中对应的单元称为 页框(Page Frame)。RAM 和磁盘之间的交换总是以页面为最小单元进行的。许多处理器支持对不同大小的页面混合使用和匹配。如 x86-64 架构的处理器支持 4KB、2MB 和 1GB 大小的页面。可以将一