《操作系统真象还原》第五章 二级页表原理

输入:32位虚拟地址 0x01234567

输出:32位的实际物理地址

二级页表地址拆分规则:高10位为页目录(二级)索引,中间10位为(一级)页表索引。最后低12位为物理页(实际物理地址)内偏移量。

举例说明:输入虚拟地址 0x01234567 对其拆分二进制,我们知道十六进制到二进制是1对4位的关系,即0x0 =0000 ,0x1=0001 ,0x2=0010 ,

所以拆分得到 0000 0001 0010 0011 0100 0101 0110 0111 

这样分别得到页目录(二级页表)的索引值是4,页表(一级页表)的索引值是564,物理内偏移量是0x567.

第一步:要去页目录(二级)中找到页表(一级)地址,也就是4*4=16,意味着该页表地址偏离页目录首地址16个字节处。从这里取出页表(一级)地址。

第二步:要去页表(一级)中找实际的物理页地址。偏移量是564*4=2256=0x8d0,加上第一步找到的页表首地址。最后就得出了实际的物理页地址。

第三步:将物理页地址加上原虚拟地址低12的偏移量,得到最终的实际物理地址。这个地址就是最后输出的结果,用它去访问内存取到数据。

《操作系统真象还原》第五章 二级页表原理_第1张图片

总结一下:物理页地址存放在(一级)页表中,(一级)页表地址存放在页目录(二级)中,页目录首地址(二级)有专门的寄存器存储它。

你可能感兴趣的:(操作系统,系统架构)