yyxl的ChinaUnix博客yyyw.blog.chinaunix.net
yyxl
全部博文(1805)
display(4)
display(7)
oops(7)
2017年(19)
2016年(80)
2015年(341)
2014年(438)
2013年(349)
2012年(332)
2011年(248)
marion
n73man00
HuangLei
wangchen
commshar
gongping
wowuchi
crowsy00
大鬼不动
lkfei
pengsl20
Yan999
cadssaa
13814089
llst008
haha625
Liyan15
firo
分类: LINUX
2015-09-11 00:17:14
原文地址:Linux内核中常见内存分配函数 作者:FBI888XH
分配原理
最大内存
其他
__get_free_pages
直接对页框进行操作
4MB
适用于分配较大量的连续物理内存
kmem_cache_alloc
基于slab机制实现
128KB
适合需要频繁申请释放相同大小内存块时使用
kmalloc
基于kmem_cache_alloc实现
最常见的分配方式,需要小于页框大小的内存时可以使用
vmalloc
建立非连续物理内存到虚拟地址的映射
物理不连续,适合需要大内存,但是对地址连续性没有要求的场合
dma_alloc_coherent
基于__alloc_pages实现
适用于DMA操作
ioremap
实现已知物理地址到虚拟地址的映射
适用于物理地址已知的场合,如设备驱动
alloc_bootmem
在启动kernel时,预留一段内存,内核看不见
小于物理内存大小,内存管理要求较高
注:表中提到的最大内存数据来自CentOS5.3 x86_64系统,其他系统和体系结构会有不同
上一篇:_IO, _IOR, _IOW, _IOWR 宏的用法与解析
下一篇:Gstreamer 的工具
登录 注册