免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2479 | 回复: 2
打印 上一主题 下一主题

如何在用户态进程中分配并使用高端内存? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-31 15:08 |只看该作者 |倒序浏览
内核态进程由于线性地址空间从3GB ~ 3GB+896MB, 这样,这样没有足够的线性地址去访问1024GB以上的物理内存。所以在剩下的128MB的线性空间中有一部分用来做映射,即将高端内存地址映射到这128MB中的线性地址空间,从而达到访问高端物理内存的目的。

可是,如果是在用户态进程中呢?由于0~3GB的线性地址空间足够了,如果要分配和使用物理地址在2GB~3GB的高端内存,如何实现呢?
也就是说,如何实现用户态的某个进程的线性地址强制映射到高端物理内存地址?分配并使用之。

请高手指点!

论坛徽章:
0
2 [报告]
发表于 2006-05-31 22:12 |只看该作者
你就根本还没搞懂Linux是怎么使用内存的。
超过896M的内存有两种使用方式,一种是给内核使用的,通过vmalloc分配,一种就是给应用程序使用的,由于应用程序使用内存时都需要经过mms,所以内核给用户分配内存时首先使用高端内存。

论坛徽章:
0
3 [报告]
发表于 2006-06-28 16:02 |只看该作者

回复 2楼 snow_insky 的帖子

"所以内核给用户分配内存时首先使用高端内存"
此处何解?
高端内存(>896M)会首先分配给应用程序吗?
我理解的高端内存应该是内核用来访问超过1G的物理内存,或映射i/o地址等,还请大虾指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP