请教关于highmem的问题
时间:2010-08-23
来源:互联网
谢谢!
作者: rc_hz 发布时间: 2010-08-23
用户进程有4GB的线性地址,内核有1GB的线性地址——但是并不是说,用户进程4GB中最后那一个1GB就是内核的地址空间。因为每个程序(包括内核)都有其独立的虚拟地址空间。互不相干!
作者: 独孤九贱 发布时间: 2010-08-23
谢谢,但还是不解啊!
我的疑惑是这样的:用户进程虚拟地址与物理地址的映射可以是任意的(动态决定的),而内核的虚拟地址与物理地址的映射则是固定的。先假设某个用户进程的某个虚拟地址映射到了物理内存128M处,现假设内核刚好要用到虚拟地址3G+128M,那内核岂不是也要用到物理内存128M吗?
作者: rc_hz 发布时间: 2010-08-23
线性地址页表最终映射的物理页帧,是由操作系统来管理的,事实上,它并不一定映射到一个具体的物理内存地址,有可能已经被交换到辅助存储器(如硬盘上)了。
像这说这种情况,除非显示的使用mmap做内存共享,否则是不可能发生的。
你读的ULK3那一章,好像是讲内核的线性地址的分布吧,后面有一章专门讲进程的地址空间的。
作者: 独孤九贱 发布时间: 2010-08-23
独孤九贱 发表于 2010-08-23 11:40
那前端物理空间的分配情况到底是怎么样的呢?是不是内核一开始就占据了所够占据的所有内存?进程要物理内存和内核要物理内存都是通过同一子系统么?内存来源都是混在一起的吗?
作者: tempname2 发布时间: 2010-08-23
内核知道这个地址分配给了用户空间,那么对它的访问就是对用户空间的访问.
一个程序不会平白无辜的访问一个地址,除非有BUG.
作者: smalloc 发布时间: 2010-08-23
作者: tempname2 发布时间: 2010-08-23
1-2个G还不够?
作者: smalloc 发布时间: 2010-08-23
1-2个G还不够?
smalloc 发表于 2010-08-23 12:02
不是呀,我是说难道内核一开始就把自己的1G 虚拟地址全部映射到物理地址上吗?如果内存只有256M怎么办呢?
作者: tempname2 发布时间: 2010-08-23
这个我觉得内核空间的页并不算就是给内核使用的页,是2个概念
作者: smalloc 发布时间: 2010-08-23
独孤九贱 发表于 2010-08-23 11:40
我在看的是第二章关于“内核页表”的那一节。我也知道线性地址并不一定映射到具体的物理内存地址。但我看内核的线性地址映射中(3G ~ 3G+896M),却提供了线性地址与物理地址的一一映射(宏__pa,宏__va),这就相当于是说物理内存0 ~ 896M只能映射到虚拟地址3G ~ 3G+896M啊
作者: rc_hz 发布时间: 2010-08-23
这个我觉得内核空间的页并不算就是给内核使用的页,是2个概念
smalloc 发表于 2010-08-23 12:11
我看内存这一块已经很久了,一直处于一种极其恐怖的状态:根本不知道自己哪里不懂!!感觉上就是不懂,但问问题都不知道该问什么!!
现在就问一个问题:
作者: tempname2 发布时间: 2010-08-23
同感啊
作者: rc_hz 发布时间: 2010-08-23
什么叫低端内存.如果仅仅是小于896的,那当然是可以的.
只是物理页面还有个是否"脏"的问题.你有用TOP程序看到内存使用率,未使用的就就是干净页面.
作者: smalloc 发布时间: 2010-08-23
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28