内存管理篇-23 二级页表的创建过程-上

        二级页表的填充过程:一级页表是4096项(用虚拟地址高12位),二级页表是256项(用虚拟地址中间10位,每个项能代表一个物理页,因此4KB*256=1MB)。因此,每个二级页表映射1MB的空间-物理页。1MB*4096正好也是映射一个进程的4GB内存。

        这样看来,一级页表和二级页表的第一阶段映射都是不需要变的。每一个一级页表的映射范围都是1MB。因此在创建二级页表的时候,原先使用的section映射页表还可以继续复用它。

        在section映射中,内核镜像区的前16KB保存了页表信息。在两级映射中,也可以继续使用这段空间。采用一级section映射的时候,页表项的每个entry都是某物理区间section的起始地址。采用二级映射后,这里的内容就发生了变化,每个entry的内容将保存的是二级页表的起始地址,二级页表entry中的内容才是真正的保存了物理页帧的起始地址。所以这个阶段会对这段空间进行修改。

        二级页表的格式:注意,二级页表映射中,这里第一级页表的低10位是用来对齐的(没理解为啥),因为第二级页表只有10位。如果页表项的后两位是00,表示页表项没有填充。10表示段映射,01表示二级映射。在访问者16KB的内容时,通过这些位判断时属于什么映射。 

 没看懂,二级页表是如何创建的,如何复用之前内核镜像前的16KB页表空间的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyDog0623

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值