当我们进入64位地址空间时,您将会欣赏到多级页表的空间优化.
假设你有一个64位计算机(这意味着64位的虚拟地址空间),它具有4KB页面和4GB的物理内存.如果我们建议使用单级页面表,那么每个进程每个虚拟页面应该包含一个条目.
每个虚拟页面一个条目 – 264个可寻址字节/ 212个字节每页= 252页表条目
一页表项包含:访问控制位(比如页面存在,RW等)物理页码
4 GB物理内存= 232字节.
232字节的内存/ 212字节每页= 220个物理页面
物理页码需要20位.
所以每个页表条目约为4个字节. (20位物理页码约3字节,访问控制贡献1个字节)
现在,页表大小= 252页表项* 4字节= 254字节(16字节)!
每个进程的16 PB是非常巨大的内存量.
现在,如果我们也打印pagetable,即如果我们使用多级页面表,我们可以神奇地将所需的内存降低到一个单一的页面.即只有4 KB.
现在,我们将计算将页面表压缩到只有4 KB所需的级别. 4 KB页/每页4字节表条目= 1024条目.需要10位地址空间.即52/10 ceiled是6.即6页的页表可以将页表大小降低到只有4KB.
6级访问肯定比较慢.但是我想说明多级页面表空间的节省.