多级页表存储管理

这里以二级页表为例子展开。如果一个页表过大,我们我们就把这个页表再分页并离散存储,然后再建立一张页表记录页表各个部分的存放位置,称为页目录表(外层页表、顶层页表)。

二级页表的结构如下图所示:
image.png

于是多级页表的寻址过程有就如下:

  1. 按照地址结构将逻辑地址拆分成三部分;
  2. 从PCB中读出页目录表开始地址,再根据一级页号查页目录表,找到下一级页表在内存中的位置;
  3. 根据二级页号查二级页表,找到最终想要访问的内存块号;
  4. 结合也页内偏移量得到物理地址;

如何不让整个页表都常驻内存?在页表项中增加一个标志位,用于表示该页面是否已经调入内存:
image.png

注意
  1. 各级页表的大小不能超过一个页面,即只能占用一个块。若两级页表不够,可以分更多级;
  2. N 级页表(没有快表机构),需要 N + 1 次访存;

image.png