高级操作系统——第六周内存管理(2)

二级页表的寻址

之前一直以为自己懂了,可是细想发现其实没懂。
首先看二级,一级页表的机构
这里要注意一些名称代词:
PD:页目录(指的是二级页表) PDE:页目录项 PDI:页目录索引
PT:页表 PTE:页表项 PTI:页表索引
PFN:页框号
32位地址:10位页目录项,10位页表项,12位页偏移(VPN+VPO)

在这里插入图片描述
之前其实我一直以为,PD里面存储的是32位地址(即页表的地址)所以会占用4KB,其实一直错了!
从上面我们可以看到,无论是页表还是页目录,结构类似。从本质来讲,二级页表查找和一级页表查找时一样的。
首先二级页表查找:
首先看我们所学过的知识,页表(页目录)就是将虚拟的第i页转化为物理的第j页
1:页目录:前10位相当于是虚拟的第i页,根据索引自上而下找第i项注意有的时候给的是具体的地址,那么就找基地址+10位左移【看上一篇博文】,找到了第i项的内容PDE,由PFN+标志位组成。
2:页表。找到了页目录的PDE(PFN+标志位),那么如何找页表呢?这里要注意,PFN页框号,而物理地址的页框是从0开始排布的【理解为从0开始一页一页的贴满物理地址】,那么相当于我要找的页表就是物理地址上的第PFN页!所以我们不需要32位地址去找,只需要PFN4KB即可注意有些时候给的是32位地址,那么就需要将后三位归0才得到页表的基地址
所以页表基地址=PDE中的PFN
4KB
3:找到页表后,VPN的中间十位表示的是页表项,即页表中的第几项,所以根据索引自上而下找第i项注意有的时候给的是具体的地址,那么就找基地址+10位左移【看上一篇博文】。找到了第i项的内容PTE,由PFN+标志位组成。
4:接下来就是我们熟悉的了,PFN*4KB+VPO=物理地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值