LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 771|回复: 2

关于虚拟内存的几个数据结构的问题。

[复制链接]
发表于 2005-3-13 15:55:22 | 显示全部楼层 |阅读模式
近日研究Linux Kernel,发现自己对于i386体系结构下的虚拟内存管理理解得还是云里雾里的。看了有关书籍和网上文章之后,现有几个问题不明,向各位有识之士请教:
1、页目录项这个数据结构是用来做什么的,我在许多内核介绍的书上根本就看不到这个概念,也可能术语不是这么叫的。
2、为什么说以4K大小为一页的话,32位机一个页目录总共可以容纳1024个页目录项,怎么算出来的呢?
3、页目录与页表有什么不同呢?
希望高手指点迷津!谢!
发表于 2005-3-13 17:27:42 | 显示全部楼层
多程序并行涉及到内存区域的进程分配、重定位等问题;而分页机制使得内存管理细粒度化,经过长期实践被证明是行之有效的管理基础。

1.页目录表,顾名思义,是"页表的目录",其概念类似于我们平时使用的文件目录;页目录表中的一个目录项指向了一个页表。
2.4K=2^12,使用了32位线性地址中的12位;剩下的20位,由页目录表以及页表来平分,所以页目录表=2^10=1K,故页目录表总共有1024个页目录项。之所以这样分为两级页,是为了节省空间,在某些平台上,Linux甚至使用了3级页。
3.页目录表的一个页目录项指向了一个页表,页表中的一个页表项指向了一个页。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-13 20:18:03 | 显示全部楼层
多谢斑竹指点!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表