Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92122892
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-01 16:08:53

作者: qvooqi  出自:
  内核模块中分配内存有很多方法和函数:

  1、kmalloc(),这是最常使用的函数,速度快且分配的内存在物理上是连续的,但一般情况下它所能分配的最大内存大小为128k字节。

  2、__get_free_pages(),分配指定连续页的内存,性质同kmalloc()但却可以分配更多的连续的物理内存,当然,和kmalloc一样,其返回值也是内核虚拟地址。

  3、vmalloc(),该函数分配的内存在物理上可能不连续,其分配的内存不但使用起来稍微低效而且无法被外部设备作为DMA传输使用,不推荐在内核模块中使用,只有当需要分配一个大的且只在软件中使用的缓冲时才建议考虑。vmalloc()还无法在原子上下文中使用。
阅读(370) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~