博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈linux内核中内存分配函数
阅读量:4875 次
发布时间:2019-06-11

本文共 609 字,大约阅读时间需要 2 分钟。

    linux内核为了高效的管理内存,提供了很多内存申请的函数。在不同的情况下要使用不同的内存分配函数,下面我们根据具体情况来分析看下。

    1) void *kmem_cache_alloc(kmem_cache_t *cachep, int flags);

          void *kmem_cache_free(kmem cache_t *cachep, void *objp);

          内核的slab的缓冲区分配和管理方法提供的一组内存分配和释放的API(slab内存管理机制有时间我们再谈),它是内核缓冲区的分配方式,管理内核额cache。

    2)void *kmalloc(size_t size, int flags);

         void kfree(const void *objp);

         分配一个不具有专用的slab队列的数据结构而又不需要整个页面时,都是些细小而又不常用的数据结构。

    3)alloc_page()

         针对2)需要分配整个页面时的内存分配函数。

    4)void *vmalloc(unsigned long size);

         void vfree(void* addr);

        从虚拟内存3G以上的内核空间分配一块虚拟内存及相应的物理内存,这块内存不会被kswap守护进程换出(何为kswap守护进程我们也是到有时间的时候谈下)。

转载于:https://www.cnblogs.com/lovefive/p/7344412.html

你可能感兴趣的文章
通过反射,给对象之间赋值
查看>>
Unity2.0学习笔记-Unity2.0基础-如何配置Unity2.0容器-设计时配置
查看>>
常用的电脑快捷键
查看>>
linux如何查看所有的用户和组信息?
查看>>
iOS-当输入框被键盘遮挡时让整个view上移
查看>>
python 列表去重(数组)的几种方法
查看>>
C# virtual and overide
查看>>
蜗牛历险记(二) Web框架(下)
查看>>
2017.07.31软件更新公告
查看>>
综合练习:英文词频统计
查看>>
版本控制系统git
查看>>
git使用
查看>>
【BZOJ-3165】Segment 李超线段树(标记永久化)
查看>>
正则表达式语法
查看>>
Bugzilla Status Update
查看>>
[转]UT-IT-ST-BBIT-SDV-SIT-SVT
查看>>
2.28 MapReduce在实际应用中常见的优化
查看>>
SQL按指定字符拆分字符串
查看>>
马婕 2014年MBA,mpacc备考 报刊宣读1 中国的电子商务(转)
查看>>
微软挫败:OA等办公软件不再需要下载,其桌面办公软件无立足之地
查看>>