分页技术

参考:

设计

下面一张图可以展示分页技术的层级设计过程:

../PageTableDesign.png

概念

页 (Page):

  • 在进程的逻辑地址中,一段连续地址的集合。
  • 页的大小一般提供三种规格:4K、2M、4M

Frame:

  • 在内存的物理地址中,一段连续地址的集合。
  • 一个 Page 与一个对应的 Frame 对应,Frame 的大小与 Page 也是相同的。

页表 (Page Table) 与页目录 (Page Directory):

  • 页表:是一个有 102432-bit 元素的列表,每一个元素都指向一个真实的物理地址;

    如果页表大小为 4K,我们只能表示 1024 * 4K = 2^2222-bit 的逻辑地址。而我们需要 4G = 32-bit 的逻辑地址。因此如果只有一个页表,我们无法表示整个逻辑地址空间。

  • 页目录:因为页表无法映射所有逻辑地址而产生的二级目录,它也是一个有 102432-bit 元素的列表,每一个元素都指向一个页表的地址;

    页表和页目录项一起工作,我们即可以映射整个 4G = 32-bit 的逻辑地址。

流程