免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1202 | 回复: 1
打印 上一主题 下一主题

[系统管理] 请教关于Linux中计算内存页表(Page Table)大小的计算方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-09-19 18:24 来自手机 |只看该作者 |倒序浏览
各位好:
我在看一些资料时说到,对于32位的Linux系统,假如1G物理内存页面表(Page Table)的大小计算是这样的:
1G内存/4K=262144 个内存页,因为一个内存页是4k(4096bytes)
然后1G物理内存的page table大小为1M  262144*4/1024/1024=1M

如果是64位系统则翻倍,所以64位Linux的1G物理内存的page table大小为2M

如果使用内存页大小为2M(2048K)的大页内存(HugePage),1G物理内存的page table大小为48K

请问:
1、以上说的 1G物理内存的page table大小为1M  262144*4/1024/1024=1M
如果是64位系统则翻倍,所以64位Linux的1G物理内存的page table大小为2M,这个计算方法正确吗?

2、以上 262144*4/1024/1024=1M 这个公式262144*4这部分是以K单位来计算的,那为什么262144*4/1024/1024单位是1M呢?这两个1024到底是表示单位进制?还是表示1个page table有1024个页表项,1个页表项对应有1024个物理地址开始地址呢?

3、如果使用内存页大小为2M(2048K)的大页内存(HugePage),1G物理内存的page table大小为48K。  这里这个48K是怎么计算出来的?我按照上面的公式也计算不出是48k。

小弟愚昧,上面三个问题实在搞不懂,希望各位大神愿意帮忙指点解答。

衷心感谢!


论坛徽章:
0
2 [报告]
发表于 2016-09-22 23:04 |只看该作者
有人愿意帮忙解答一下吗?感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP