设为首页 加入收藏

TOP

Linux Slab分配器(四)--分配对象
2014-11-24 12:11:45 来源: 作者: 【 】 浏览:0
Tags:Linux Slab 分配器 --分配 对象

从一个缓存中分配对象总是遵循下面的原则:


1.本地高速缓存中是否有空闲对象,如果有的话则从其中获取对象,这时分配的对象是最“热”的;


2.如果本地高速缓存中没有对象,则从kmem_list3中的slab链表中寻找空闲对象并填充到本地高速缓存再分配;


3.如果所有的slab中都没有空闲对象了,那么就要创建新的slab,再分配 。


函数kmem_cache_alloc用于从特定的缓存获取对象,kmalloc用于从普通缓存中获取对象,它们的执行流程如下图所示



实质性的工作是从____cache_alloc()开始的,因此从这个函数作为入口来分析


对于所有slab都空闲对象的情况,需要调用cache_grow()来增加cache的容量,这个函数在后面分析slab的分配时再做介绍。


相关阅读:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇shell脚本中的彩色显示 下一篇Linux Slab分配器(五)--释放对象

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 并发工具类:提 (2025-12-25 20:25:44)
·Java面试技巧:如何 (2025-12-25 20:25:41)
·Java并发编程中的线 (2025-12-25 20:25:38)
·C 语言 - cppreferen (2025-12-25 19:50:27)
·《C 语言入门教程》 (2025-12-25 19:50:23)