免费注册 查看新帖 |

Chinaunix

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

Linux的Virtual Memory Areas(VMA) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-01 20:13 |只看该作者 |倒序浏览
看了 Linux的Virtual Memory Areas(VMA)的介绍后,仍然存在一个疑问。用户的进程空间的内存到实际的物理内存的分配是通过什么机制实现的,具体是有哪些系统调用完成的,会用到slab层吗?

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
2 [报告]
发表于 2011-06-01 20:39 |只看该作者
最底层是Buddy System,Slab是建立在Buddy System之上的。进程的虚拟地址也是一种资源,VMA就是用来描述这种资源的。至于虚拟地址下面有没有物理内存就看情况了。有时分配了虚拟地址就向Buddy System要内存并且在页表将两者联系上,有时则只分区虚拟地址段,等到访问这段空间时再分配内存。可以认为分配虚拟地址段和分配物理内存是独立的。

论坛徽章:
0
3 [报告]
发表于 2011-06-01 20:46 |只看该作者
你的意思是如果需要分配物理地址的情况下,会使用Buddy System来完成。是吗?
回复 2# tempname2

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
4 [报告]
发表于 2011-06-01 20:50 |只看该作者
回复 3# gulang2004xy

情况很多,不敢说绝对,一般要page frame就是向Buddy System索取。

论坛徽章:
0
5 [报告]
发表于 2011-06-01 22:27 |只看该作者
用户空间申请内存的主要通过几个系统调用, execute,fork,brk,等系统调用可能会引起内核创建vma,然后申请内存页,并把对应关系放到页目录,页表中去。

论坛徽章:
0
6 [报告]
发表于 2011-06-01 22:28 |只看该作者
不会用到slab

论坛徽章:
0
7 [报告]
发表于 2011-06-03 09:59 |只看该作者
其实,很多时候我们都是太多关注内核空间与用户空间的概念定义了。本质上他们都是地址空间,甚至在从内核太看来他们是“一样的”。不然大名鼎鼎的copy_from_user实现怎么会就是简简单单的循环拷贝+fix area。只不过用户态是被多个进程复用的,所以页表处理和地址空间分配上有所不同。具体说就是用户态页表每个进程有一个,并且分配地址空间是以VMA大块大块的分配。
不知道偶的理解是否有偏差?CU 内存大牛们

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
8 [报告]
发表于 2011-08-16 22:56 |只看该作者
赞一个

论坛徽章:
0
9 [报告]
发表于 2011-08-29 10:46 |只看该作者
回复 7# 懂医术的厨师
不想懂医术的厨师,不是好程序员。呵呵。好像用户空间的页表在映射内核的部分都是一样的。

论坛徽章:
0
10 [报告]
发表于 2011-08-29 20:18 |只看该作者
本帖最后由 omycle 于 2011-08-29 20:19 编辑

回复 1# gulang2004xy


   
看了 Linux的Virtual Memory Areas(VMA)的介绍后,仍然存在一个疑问。用户的进程空间的内存到实际的物理内存的分配是通过什么机制实现的,具体是有哪些系统调用完成的,会用到slab层吗?


有啊,比如brk.

分配大数据是通过伙伴算法云云
分配小数据结构对象,是通过slab. 当然slab是以伙伴算法为基础的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP