页表项与页表的关系是:页表项是页表中的元素之一。
1.页表、页表项
页表是由多个页表项组成的,即页表中的每一行都是页表项信息中记录的一个页表项。页框号:记录虚拟页对应的具体物理页。有效位:表示页表项对应的虚拟页是否已读入内存,否则存在于磁盘上。访问位:参考位,指示该页是否已被访问。
修改位:该页在内存中是否被修改过?如果它们被修改,它们将来会保留在磁盘上。这个标志就是为了这个目的而设计的。保护位:指定该页的读写权限。页表项一般是由机器设计的,因为大多数地址转换是由机器完成的。
2.页目录、多级目录
引导页目录:对于32位虚拟地址空间,假设页大小为4K,则4字节进程的页表项有4G/4K=2^20行H.因为页需要进入页表来匹配。
所以,该进程的页表项数也是2^20。不难发现,该进程的页表占用了2^20*4/4K=1024页。对于64位虚拟地址空间,页表的大小更大,理论值为32,000TB。
页表页其实就是存放进程页表的页,是进程的一部分。页表也使用页作为其主要存储单元。因此,为了高效利用内存,大页表页一般不会存储在连续的内存中。
这样,我们就为页表页面提供了标题索引表。页面引导提供了引导,成为二维结构。维度页表结构也称为多级页表。
1.通过CR3寄存器我们得到页目录的地址。
2.然后根据虚拟地址的前10位,确定在页目录中的偏移量。偏移量对应的地址存储的是页表的地址。
3.得到页表的地址,然后根据页表的偏移量得到页表项的地址,就可以知道它对应的是哪个物理页了。
4.最后根据物理页号,访问物理页并加上页内的偏移量,找到对应的数据或指令。
上一篇:oppo手机128内存多少钱
下一篇:页表存放在内存中吗