多级页表计算题过程举例

假设程序文件为16GB,系统按字节编址,页面大小为4KB,页表项大小为4B,那么应该如何分配多级页表?

解:
一共 16 G B 4 K B = 4 M \frac{16GB}{4KB}=4M 4KB16GB=4M 个页面,

一个页面能存 4 K B 4 B = 1 K \frac{4KB}{4B}=1K 4B4KB=1K 个页表项,

索引 4 M 4M 4M 个页面需要 4 M 1 K = 4 K \frac{4M}{1K}=4K 1K4M=4K 个一级页面,

索引 4 K 4K 4K 个一级页面需要 4 K 1 K = 4 \frac{4K}{1K}=4 1K4K=4 个二级页面,

索引4个二级页面需要1个三级页面。

最终可以验证一下:

4 × 2 10 × 2 10 × 4 K B = 16 G B 4\times2^{10}\times2^{10}\times4KB=16GB 4×210×210×4KB=16GB


在最高级的页目录中,其页表项包含了下一级页目录的物理内存地址,以此类推。在最低级的页目录中,其页表项包含了我们实际上想要翻译的物理页面地址。然后再加上虚拟内存地址的12位(对应一个页面4094位)offset,就得到了最终的物理内存地址。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值