Linux内核复习之分页机制

 什么叫“页”

    分页实际上是对内存的一种分层分组的管理。分页机制在内存中建立页目录、页表这样的多级结构,这就是典型的分层管理。另一方面,一个页表中每个页表项都对应着一个物理页,也就说,一个页表管理着一组连续的虚拟地址的映射情况,这就是分组机制。

 

地址映射过程

    相信这张经典的图就足以解释了。简单分析一下,在常见的二级页表映射过程中,页目录通过高31-22位索引,这里共10位,也就是1K个,而每个页目录项(PDE)的大小为4字节,总共大小就是1K*4B=4KB,恰好一个页。PDE的低12位都一些属性位,例如,最典型的P位指明这个目录是否存在。PDE的高20位则是要找的页表的基址。接下来,用虚拟地址的高21-12位作为下标从该页表中找到对应的页表项PTE,PTE的大小同样为4字节,并且它的结构与PDE非常相似。提取对应页表项的高20位作为对应物理页的基址,再加上虚拟地址中的低12位,我们就得到了实际的物理地址。

 

问题:

    页目录都是按4KB对齐的,为什么?这是因为页目录基址由CR3寄存器给出,在CR3中仅使用20位指明页目录基址。

    页表都是按4KB对齐的,为什么?这是因为页表基址由PDE给出,在PDE中仅使用20位指明页目录基址。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值