SLAB分配器
1.综述
用一段话来描述slab。就是讲内存按照对象为单位进行组织,一定数目的对象聚集在一起称为一个slab。系统通过操作slab来进行内存的分配。每个CPU上的per-CPU结构中,保存了空闲的对象指针,通过这些指针,系统可以快速有效的进行对象分配。
上面的图来自PLK中, 很明显,kmem_cache控制了内存节点的slab内存分配。结构中有指向per-CPU缓存的arraycache指针,也有指向slab链表的三个指针。
2. 着色原理
所谓的着色,目的只是为了让slab中相同偏移量的对象进入CPUcache的时候,尽量不会出现处在同一cache行中
3. kmem_cache的操作
cache创建
Linux内核中的slab分配器详解

slab分配器是Linux内核中用于高效内存管理的机制,它将内存组织成对象集,称为slabs,每个CPU维护着空闲对象的指针,加速内存分配。slab分配器通过着色技术避免内存冲突,并通过kmem_cache操作进行创建、分配和释放。kmalloc用于分配固定大小内存,vmalloc则处理非连续内存区域的分配。
最低0.47元/天 解锁文章
1351

被折叠的 条评论
为什么被折叠?



