下面将探讨组织页表的一些最常用技术,包括分层分页、哈希页表和倒置页表。
分层分页
大多数现代计算机系统支持大逻辑地址空间(2^32〜2^64)。在这种情况下,页表本身可以非常大。例如,假设具有 32 位逻辑地址空间的一个计算机系统。如果系统的页大小为4KB(2^12),那么页表可以多达 100万的条目(2^32/2^12)。假设每个条目有4字节,那么每个进程需要4MB 物理地址空间来存储页表本身。显然,我们并不想在内存中连续地分配这个页表。这个问题的一个简单解决方法是将页表划分为更小的块。完成这种划分有多个方法。
![1b23e6e1d7331643ca40f1c7fc7bce95.gif](https://img-blog.csdnimg.cn/img_convert/1b23e6e1d7331643ca40f1c7fc7bce95.gif)
两级页表方案
一种方法是使用两层分页算法,就是将页表再分页(如上图 )。例如,再次假设一个系统,具有32 位逻辑地址空间和4K大小的页。一个逻辑地址被分为20位的页码和12位的页偏移。因为要对页表进行再分页,所以该页码可分为10位的页码和10位的页偏移。这样,一个逻辑地址就分为如下形式: