多级也表如何节省存储空间
时间:2011-01-11
来源:互联网
在谈到多级页表的优势的时候,很多地方都是这么说的:32位地址空间的分页系统,如果页面大小为4KB,则每个进程可达1M个页,假设每个页表项占用4个字节,这样每个进程仅仅页表项就占用了4MB连续的内存空间。
问题一:为什么是连续的内存空间?不连续难道不可以吗?若果页表是通过数组实现的,可以把整个页表放在磁盘,仅仅调入一部分项到内存,其他的需要时再调度。
问题二:多级页表怎么节省存储空间的?如果是2级页表,32位地址分为10,,10,12,3部分。则,页目录表1024项,每个小页表也是1024项,实际的存储空间是1024*4k(所有小页表大小)+4k(页目录大小),变大了!!!!!!
问题一:为什么是连续的内存空间?不连续难道不可以吗?若果页表是通过数组实现的,可以把整个页表放在磁盘,仅仅调入一部分项到内存,其他的需要时再调度。
问题二:多级页表怎么节省存储空间的?如果是2级页表,32位地址分为10,,10,12,3部分。则,页目录表1024项,每个小页表也是1024项,实际的存储空间是1024*4k(所有小页表大小)+4k(页目录大小),变大了!!!!!!
作者: diandianlianyi 发布时间: 2011-01-11
问题一:页表是拿给CPU读的,CPU就规定了页表必须在内存中。如果硬要把页表放到磁盘上会怎样?CPU不能直接访问磁盘,需要通过内核提供的驱动程序来访问。那么驱动程序肯定需要用到内存,但是页表可能还在磁盘上,没有页表内存没法访问……
问题二:如果所有地址空间都有映射,那么页表级数越多,越浪费内存。但是,一般情况下有多少地址空间会被映射呢?看看你系统上的程序,占用几十兆内存的程序就已经比较猛了吧~ 那么,假设大多数地址空间是没有映射的。一级页表不管你映不映射,所有表项都必须存在;多级页表呢?如果第一级里面,某一个入口没有映射,那么这个入口下面的第二级、第三级页表就都不需要了。
问题二:如果所有地址空间都有映射,那么页表级数越多,越浪费内存。但是,一般情况下有多少地址空间会被映射呢?看看你系统上的程序,占用几十兆内存的程序就已经比较猛了吧~ 那么,假设大多数地址空间是没有映射的。一级页表不管你映不映射,所有表项都必须存在;多级页表呢?如果第一级里面,某一个入口没有映射,那么这个入口下面的第二级、第三级页表就都不需要了。
作者: kouu 发布时间: 2011-01-11
回复 kouu
问题是,为什么一级页表时,所有的页表项就必须都存在?
问题是,为什么一级页表时,所有的页表项就必须都存在?
作者: diandianlianyi 发布时间: 2011-01-11
lz标题都打错了~ 页表就是一个大数组一样,如果只存在一部分,那么以后要扩展怎么办?
作者: amarant 发布时间: 2011-01-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28