- 论坛徽章:
- 0
|
各位好:
我在看一些资料时说到,对于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。
小弟愚昧,上面三个问题实在搞不懂,希望各位大神愿意帮忙指点解答。
衷心感谢!
|
|