49 kmalloc 的实现

慕犹清

关注

阅读 19

2024-03-13


前言

这里说的是 内核中分配小对象的一种内存分配方式 kmalloc 

呵呵 经典程度不必多说了, 内核使用的大多数 不经常使用的小对象基本上是基于 kmalloc  

这里 我们来看一下 kmalloc, kmalloc 基于 slab, 因此 这里不会赘述太多 

 

 

如何分配对象  

kmalloc 是系统中分配小空间的一种机制, 基于 slab

基于size 获取该类型的 slab, 然后基于该 slab 分配空间

49 kmalloc 的实现_内存分配

 

根据 size 获取给定的 size 对应的 slab

49 kmalloc 的实现_内存分配_02

 

size_index 映射的顺序, 增量为 8, 24个等级, 表示了 192 个等级的映射 

size 转换为 size_index 的关系为 size_index = (size - 1) / 8

49 kmalloc 的实现_mm_03

 

Kmalloc_caches 定义的顺序 

49 kmalloc 的实现_linux_04

 

 

完 

 

 

 

精彩评论(0)

0 0 举报