operating system

为了更好地利用内存,现在的计算机都采用页表机制给进程分配内存。

页表

x86页表机制

如上,这是 XV6 的页表机制。给你一个逻辑地址,切成 dir/table/offsetdir 是占 10 位,范围是 0~1023,而一个页等于 4 * 1024,所以 dir 刚好可以遍历一个页表。

一级页表存储的是二级页表的起始地址,所以通过一级页表可以找到二级页表,这时候,我们使用逻辑地址的 table 找到二级页表的页内偏移,得到的 PPN 就是真正的物理地址的前二十位。

二级页表的前前二十位加上 offset 得到的就是物理地址。