阅读背景:

XV6操作系统代码阅读心得(四):虚拟内存

来源:互联网 

本文将会详细介绍Xv6操作系统中虚拟内存的初始化过程。

基本概念

32位X86体系结构采用二级页表来管理虚拟内存。之所以使用二级页表, 是为了节省页表所占用的内存,因为没有内存映射的二级页表可以不用分配地址来存储。在这个二级页表结构中,每个页的大小为4KB,每个页表的大小也为4KB,每个页表项的大小为4字节,一个页表包含1024个页表项。一级页表表项存储的是二级页表的地址,二级页表表项存储的是对应的物理地址。虚拟地址和物理地址的最后12位总是相同,因此页表表项中的这12位可以被用作标记其他信息。对于一个32位虚拟地址,可以通过前10位来找到其对应的一级页表表项的索引,读出二级页表表项的地址,并通过访问二级页表,得到对应的物理地址。显然,这样会使得一次虚拟内存的访问变成三次物理内存的访问,为了最小化其性能影响,CPU中额外有TLB缓存会缓存最近访问的虚拟地址所对应的页表项。虚拟地址到物理地址的转换图如下32位X86体系结构




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: