0
点赞
收藏
分享

微信扫一扫

49 kmalloc 的实现


前言

这里说的是 内核中分配小对象的一种内存分配方式 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 条评论