多级页表

对于32位地址空间(4GB),若页大小为4KB,则需要2^20个页表项。若每个PTE占4字节,单级页表需要4MB的连续物理内存。若进程实际只使用了少量虚拟地址(如典型程序),大部分PTE是空的,但单级页表仍必须为所有2^20个PTE分配空间,造成巨大浪费。

多级页表(如两级页表)解决了这一问题:

  • 一级页表:一级PTE指向二级页表的物理页。若某区域未分配,对应的一级PTE置为空,二级页表无需创建。
  • 二级页表:包含实际指向物理页的PTE,仅分配一级PTE不为空的部分。

核心优势——节省空间

  • 未分配的区域不占用任何二级页表空间。
  • 一级页表本身仅需少量物理内存(如4KB / 1024个PTE)。
  • 即使二级页表被交换到磁盘,一级页表也能快速定位和管理。

多级页表也使得按需分页更灵活:每个二级页表的页面可以独立调入调出。

x86-64系统通常使用四级页表来覆盖48位虚拟地址空间。

链接到