linux内核分层,linux内核 – 为什么要使用分层的页表?

当我们进入64位地址空间时,您将会欣赏到多级页表的空间优化.

假设你有一个64位计算机(这意味着64位的虚拟地址空间),它具有4KB页面和4GB的物理内存.如果我们建议使用单级页面表,那么每个进程每个虚拟页面应该包含一个条目.

每个虚拟页面一个条目 – 264个可寻址字节/ 212个字节每页= 252页表条目

一页表项包含:访问控制位(比如页面存在,RW等)物理页码

4 GB物理内存= 232字节.

232字节的内存/ 212字节每页= 220个物理页面

物理页码需要20位.

所以每个页表条目约为4个字节. (20位物理页码约3字节,访问控制贡献1个字节)

现在,页表大小= 252页表项* 4字节= 254字节(16字节)!

每个进程的16 PB是非常巨大的内存量.

现在,如果我们也打印pagetable,即如果我们使用多级页面表,我们可以神奇地将所需的内存降低到一个单一的页面.即只有4 KB.

现在,我们将计算将页面表压缩到只有4 KB所需的级别. 4 KB页/每页4字节表条目= 1024条目.需要10位地址空间.即52/10 ceiled是6.即6页的页表可以将页表大小降低到只有4KB.

6级访问肯定比较慢.但是我想说明多级页面表空间的节省.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值