两级页表如何实现地址转换

(1) 按照地址结构将逻辑地址拆成三个部分。
(2) 从PCB中读取页目录起始地址,再根据一级页号查页目录表,找到下一级页表在内存中存放位置。
(3) 根据二级页号查表,找到最终想要访问的内存块号。
(4) 结合页内偏移量得到物理地址。
下面以一个逻辑地址为例。将逻辑地址(0000000000,0000000001,11111111111)转换为物理地址的过程。

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当CPU依次访问虚拟地址0x01000,0x01A00和0x02000时,由于采用了二级页,需要两级页才能将虚拟地址转换为物理地址。初始阶段一级页为空,因此需要进行页项的创建。 首先,虚拟地址0x01000对应的一级页索引为0x1,如果一级页中不存在该索引对应的页项,则需要创建一个新的页项。由于每个一级页项需要存储一个二级页的起始地址,因此需要新创建一个二级页,并将其起始地址存储在一级页的对应页项中。因此,一级页增加了1个页项,二级页增加了1个页项。 接下来,虚拟地址0x01A00对应的一级页索引仍为0x1,因此无需创建新的一级页项。但是,由于一级页中对应的二级页已经创建,需要在二级页中查找对应的页项。虚拟地址0x01A00对应的二级页索引为0x7,如果二级页中不存在该索引对应的页项,则需要创建一个新的页项。因此,一级页不需要增加页项,二级页增加了1个页项。 最后,虚拟地址0x02000对应的一级页索引为0x2,如果一级页中不存在该索引对应的页项,则需要创建一个新的页项。因此,一级页增加了1个页项,二级页不需要增加页项,因为对应的二级页已经在之前的访问中创建。 综上所述,当CPU依次访问虚拟地址0x01000,0x01A00和0x02000时,一级页增加了2个页项,二级页增加了2个页项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值