免费注册 查看新帖 |

Chinaunix

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

多级也表如何节省存储空间 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-11 11:12 |只看该作者 |倒序浏览
在谈到多级页表的优势的时候,很多地方都是这么说的:32位地址空间的分页系统,如果页面大小为4KB,则每个进程可达1M个页,假设每个页表项占用4个字节,这样每个进程仅仅页表项就占用了4MB连续的内存空间。
问题一:为什么是连续的内存空间?不连续难道不可以吗?若果页表是通过数组实现的,可以把整个页表放在磁盘,仅仅调入一部分项到内存,其他的需要时再调度。
问题二:多级页表怎么节省存储空间的?如果是2级页表,32位地址分为10,,10,12,3部分。则,页目录表1024项,每个小页表也是1024项,实际的存储空间是1024*4k(所有小页表大小)+4k(页目录大小),变大了!!!!!!

论坛徽章:
0
2 [报告]
发表于 2011-01-11 12:26 |只看该作者
问题一:页表是拿给CPU读的,CPU就规定了页表必须在内存中。如果硬要把页表放到磁盘上会怎样?CPU不能直接访问磁盘,需要通过内核提供的驱动程序来访问。那么驱动程序肯定需要用到内存,但是页表可能还在磁盘上,没有页表内存没法访问……

问题二:如果所有地址空间都有映射,那么页表级数越多,越浪费内存。但是,一般情况下有多少地址空间会被映射呢?看看你系统上的程序,占用几十兆内存的程序就已经比较猛了吧~ 那么,假设大多数地址空间是没有映射的。一级页表不管你映不映射,所有表项都必须存在;多级页表呢?如果第一级里面,某一个入口没有映射,那么这个入口下面的第二级、第三级页表就都不需要了。

论坛徽章:
0
3 [报告]
发表于 2011-01-11 13:30 |只看该作者
回复 2# kouu


    问题是,为什么一级页表时,所有的页表项就必须都存在?

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
4 [报告]
发表于 2011-01-11 14:06 |只看该作者
lz标题都打错了~ 页表就是一个大数组一样,如果只存在一部分,那么以后要扩展怎么办?

论坛徽章:
0
5 [报告]
发表于 2011-01-11 22:06 |只看该作者
回复 3# diandianlianyi


    页表不在,你程序怎么影射啊?
2级页表是这样的

1级页表必须在内存,这样2级页表就可以动态分配啦,所以当程序运行时,不会有太多的页表在内存中。

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
6 [报告]
发表于 2011-01-11 23:29 |只看该作者
不连续存放,或者把部分页表放到硬盘。。。。。CPU有的只是一个页表首地址而已,它要怎么知道那地址之后的一段内存哪些是页表哪些不是页表呢?

论坛徽章:
0
7 [报告]
发表于 2011-01-12 05:28 |只看该作者
页表放在硬盘之后,访问的时候会发生PAGE FAULT. 这个时候,要访问的地址是知道的。只不过那个地址上的内容在硬盘里,OS把其中的内容再加载回MEMORY就可以继续访问了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP