当前位置:  技术问答>linux和unix

讨论:分页机制能否减少物理内存的浪费?

    来源: 互联网  发布时间:2016-08-31

    本文导语:  本帖最后由 clw1984 于 2010-05-21 11:46:59 编辑 深入分析linux内核源码中的2.4.1节中有如下描述: 1. 两级页表结构 为什么采用两级页表结构呢? 在80386中页表共含1M个表项,每个表项占4个字节。如果把所有的页表项存储在...

本帖最后由 clw1984 于 2010-05-21 11:46:59 编辑
深入分析linux内核源码中的2.4.1节中有如下描述:

1. 两级页表结构
为什么采用两级页表结构呢?
在80386中页表共含1M个表项,每个表项占4个字节。如果把所有的页表项存储在一个表中,则该表最大将占4M字节连续的物理存储空间。为避免使页表占有如此巨额的物理存储器资源,故对页表采用了两级表的结构.

我的问题是,采用两级页表结构的原因真的是为了减少物理存储器的使用量吗?
个人理解如下,比较疑惑,欢迎拍砖:

采用两级页表,即将线性地址(32位)高10位作为页目录,然后从页目录中获得页表起始地址,然后和线性地址的次高10位一起获得页面地址。
这样做共有1024个目录项(2^10),每个目录项所对应的页表项有1024个(2^10),如果每个目录项所对应的页表项全部存在于内存中,那么共有1024*1024个页表项,每个页表项占用4个字节,也就是需要4M的空间来存储页表项。加上1024*4字节的目录项,实际需要的内存为4M+4K字节。这要比“在80386中页表共含1M个表项,每个表项占4个字节。如果把所有的页表项存储在一个表中,则该表最大将占4M字节连续的物理存储空间。”中描述的内存要多。唯一的好处就是可以不用连续的4M空间。 所以我认为采用2级页表应该有其他原因。

以上是我比较迷惑的地方。请大牛们帮我clear下。

|
哎,关键你是按全部的“地址空间”算的。
其实真正程序用到的内存没有那么大!两级结构可以省略实际没用用到的内存的“表示”从而减少实际的页目录与页表项所占的内存。

我的理解是这样...

|
从表面上看没有节省的
具体的实现要看page table是怎么分配的

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各位大虾,能否给兄弟提供一些自己认为比较好的关于java学习的电子书刊的下载地址和关于java学习的心得体会?欢迎讨论
  • java能否实现递归调用,入门级问题!!欢迎大家讨论!
  • Java 可以做拨号程序吗?我只是和大家讨论讨论 不必太认真
  • 欢迎高手来讨论:关于文件格式的大讨论
  • 参数传递的问题!(大家讨论讨论)
  • 用java开发一个基于Proxy(代理)的网络计费系统。有兴趣的来讨论讨论
  • 哪位高手有兴趣跟我讨论讨论java中调用dll文件??小弟有些问题还是不很清楚??
  • 【讨论贴】gcc开发的时候有大家都有什么好的调试方法,来讨论下
  • 和Java版高手在线讨论代理服务器的问题,讨论者都有分。
  • 讨论讨论,当错误发生时,并用if语句测试出时,应该返回怎样的值
  • 一个面试,是“北京华胜六所”外包给风河(VxWorks)北京研发处,做linux内核开发,大家过来讨论讨论
  • 新建了个QQ群(软件与创业),希望有兴趣的朋友进来讨论讨论软件项目、产品、创业、管理、投资等(代码之外的)观点和想法
  • Java 访问控制的问题(public,private,protected,(default))!讨论讨论!
  • 用java做c/s结构可行吗???大家来讨论讨论,应该都会有收获。
  • 这两天本版人气不高,我来发个问题,有关互斥同步的。大家讨论讨论
  • 有没有人讨论value object模式
  • http://www.itpub.net 论坛更换数据库,速度更快,欢迎大家前去讨论!
  • 讨论“内存泄漏”
  • 很专业的问题请教J2EE高手!这是一个讨论区,有请各位对J2EE感兴趣的朋友参加讨论!
  • 大家一起讨论讨论,suse和ubuntu的区别,顺便散散分
  • 对大家很有意义的一个问题,建议大虾、菜鸟们都来讨论讨论#¥#·#¥·#%#¥%#¥%
  • 大家来讨论一个最实际的问题:)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3