多级页表
对于32位地址空间(4GB),若页大小为4KB,则需要2^20个页表项。若每个PTE占4字节,单级页表需要4MB的连续物理内存。若进程实际只使用了少量虚拟地址(如典型程序),大部分PTE是空的,但单级页表仍必须为所有2^20个PTE分配空间,造成巨大浪费。
多级页表(如两级页表)解决了这一问题:
- 一级页表:一级PTE指向二级页表的物理页。若某区域未分配,对应的一级PTE置为空,二级页表无需创建。
- 二级页表:包含实际指向物理页的PTE,仅分配一级PTE不为空的部分。
核心优势——节省空间:
- 未分配的区域不占用任何二级页表空间。
- 一级页表本身仅需少量物理内存(如4KB / 1024个PTE)。
- 即使二级页表被交换到磁盘,一级页表也能快速定位和管理。
多级页表也使得按需分页更灵活:每个二级页表的页面可以独立调入调出。
x86-64系统通常使用四级页表来覆盖48位虚拟地址空间。
链接到
- 上一个知识点:9.10 TLB加速
- 下一个知识点:9.12 Corei7内存系统