kowems成长印记kowems.blog.chinaunix.net
kowems
专注linux
全部博文(101)
LILO(2)
cocos2d-x(1)
转载(2)
学习指南(1)
个人感想(0)
面试谈(1)
书籍(1)
ARM(0)
IA32(0)
共通(1)
ASP.NET 开(1)
技能篇(2)
Qt(2)
C/C++(7)
2017年(2)
2016年(12)
2015年(17)
2014年(41)
2013年(27)
2012年(3)
cengku
fly12345
lingdxuy
he582216
luozhiyo
飞鸿无痕
leon_yu
flyfish1
gliethtt
guoyan11
xb_0916
hurt90
bzhao
vim007
pandu
可怜的猪
galton12
yiyezhiq
分类: LINUX
2015-06-01 21:57:38
原文地址: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系统,其他系统和体系结构会有不同
上一篇:OK6410 uboot1.1.6 源码分析
下一篇:CentOS---网络配置详解
登录 注册