问个内存映射的问题
时间:2010-10-22
来源:互联网
作者: 论坛ID 发布时间: 2010-10-22
内核将物理内存为0---896MB中可用的的地址空间通过+3G来映射到内核空间,这样内核能够快速的访问物理内存。
而进程的用户空间在0---3GB,进程的地址空间是线性区组成的,内核给进程分配空间是通过分配线性区来完成的,只是将一段线性区分配给进程,并没有分配物理页。当进程访问到该线性区是就会引发缺页中断,从而分配物理页并建立映射。
作者: flike 发布时间: 2010-10-22
你的意思是在需要的时候在vmalloc分配器区分配吗,这个地址也是在3G以上的空间里,也是内核空间阿。是不是3G前的总是映射到3G后的某一个地址?
作者: 论坛ID 发布时间: 2010-10-22
这句话有问题,方向错了,应该是把第三个GB里的前896M映射到物理内存的前896M(固定偏移)
但是,前3个GB的虚拟地址空间的任何一个地址仍然可以映射到物理内存的前896M的任何free的地址(你的kernel的代码和数据是绝对不可能有896M的).
还有,映射!=分配
作者: snail_314 发布时间: 2010-10-22
那进程的地址空间是不是都是在映射在了vmalloc那一段上呢?因为看书讲进程地址都是讲vm_area_struct的管理的。那么每一个物理地址至少映射在了两个地址(3G前,3G后)上吗?
作者: 论坛ID 发布时间: 2010-10-22
作者: PCliangtao 发布时间: 2010-10-22
不是.
映射不等于分配.虚拟地址到物理地址的映射可以是多对一.
vm_area_struct和vmalloc也是两码子事
作者: snail_314 发布时间: 2010-10-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28