关于页表

 

pde - 页目录       pte - 页表

 

http://linux.chinaunix.net/bbs/thread-1029871-1-1.html

 

问:

书上的解释是“二级模式通过只为实际使用的那些虚拟内存区请求页表来减少内存容量”
不是很理解这句话的意思?一级页表不可以这样做吗?

 

答:

比如对于4G的空间,4K页
那需要2^20 == 1M个页标项(无论用不用都需要,系统不知道哪个地址是否会被访问)
1M * 4 == 4M
每个进程都需要4M的页表

而如果2级
只需要一个页目录 + 1个页表(比如只使用4M的情况)就足够了

 

-----------------------------------------------------------------------------------------------------

 

这个帖子也不错:

http://www.ajaxstu.com/neiheyuanma/298024.html

 

问:

ULK上说:
使用二级分页模式的目的在于减少每个进程页表所需的RAM数量,如果使用一级页表
将需要2的20次方个表项来表示每个进程的页表。

但我认为使用二级分页模式不仍然需要2的20次方的表项来表示每个进程的页表吗?(4GB)
2的10次方(页目录)*2的10次方(页表)

然后ULK上又说:
二级分页模式通过只为进程实际使用的那些虚拟内存区请求页表来减少页表使用的内存。

我想问的是一级页表不同样可以通过只为进程实际使用的那些虚拟内存区来请求页表吗?

 

答:

(1)二级页表并不用全分配的,除非你用全了4G 地址空间,因为它可以分配 pde(4K)+ number of pte, not all process uses 1024*pte?

one level page table you have to do full allocate or hash to allocate less space.

power pc is using hash.

 

(2)页目录空间是必须要分配的,页目录指向的页表如果那段线性地址没有使用可以不分配,达到节省内存的效果

 

(3)X86上不开启PAE,使用4K的页表:


如果页表只有一级,那么2^20个页表要线性排列,即在连续的空间上排列,即使某项为空也要留下页表项的位置
如果有两级页表,那么第一级的空间仍然要分配,但第二级的页表可以以1024(4K/4)项为单位不连续分布,这样的话如果页表使用的空间基本与进程使用的空间呈线性,如果进程使用的内存空间小,就可以大大减少页表所占空间。
最后,如果进程使用所有的线性地址空间,用二级页表的空间比用一级页表的空间大0.1%左右。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值