Linux 内存管理浅析 - 页面映射管理之页表简介

(3). 页表简介

前面说了那么多,现在我们可以详细的讨论页表了。因为这部分内容涉及到平台相关性,我将以e6500为例说明。

当虚拟地址转换成实际的物理地址时,我们需要有个实体记录这种转换关系,这个实体就是页表项(Page table entry)。因为物理地址我们是分页来管理的,则每一个物理页我们都需要一个这样的页表项来表示这种转换关系。页表项实体抽象出来,我们可以用一个结构体或类型来表示(实际上是unsigned long类型,对于64bit CPU来说就是64bit)。如果有物理页面我们需要访问,那么就实例化一个这样的页表项。注意这里我们只是按需实例化,并没有全部实例化所有物理地址空间的页表项。所有这样的页表项就组合成了页表(Page table)。

前面我说过,虚拟地址空间没有分页机制,分页只是存在于物理地址空间。在物理地址空间,我们可以通过页面号(Page frame number)来唯一标识一段地址。那么对于虚拟地址来说,其也会自然的对齐到页面大小。也就是说,映射到某个物理页面的一段连续虚拟地址,大小为一个物理页面,它们对应于同一个物理页面。那么,我们建立这样的映射关系时,我们可以舍弃虚拟地址的某些低地址位(如果页面大小4KB,虚拟地址0x80008400和0x80008600,那么我们实际只需要地址0x80008000对应于哪个物理页面就可以了)。

既然规定了物理页面大小,那么虚拟地址也就确定了其最小映射地址bit位。对于页面内部地址bit位,我们称之为页面内部偏移(page offset)。下面这幅图显示了对于虚拟地址bit位的划分。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值