设为首页 加入收藏

TOP

Linux Slab分配器(二)--初始化
2014-11-24 12:13:49 来源: 作者: 【 】 浏览:1
Tags:Linux Slab 分配器 初始

1.创建kmem_cache高速缓存用来存储所有的cache描述符


2.创建array_cache和kmem_list3高速缓存用来存储slab数据结构中的这两个关键结构


这里明显有点自相矛盾,那就是slab管理器尚未建立起来,又如何靠slab分配高速缓存来给这些结构分配空间呢?


解决第一个问题的方法是直接静态定义一个名为cache_cache的kmem_cache结构,来管理所有的kmem_cache描述符,对于array_cache和kmem_list3,内核也是先静态定义,然后建立起普通高速缓存(general cache),再使用kmalloc分配普通高速缓存空间来替代之前静态定义的部分。


普通高速缓存是一组大小按几何倍数增长的高速缓存的合集,一个普通高速缓存用如下结构描述


普通高速缓存的大小由malloc_sizes表来确定


其中中的内容为


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux Slab分配器(一)--概述 下一篇Linux 内核中的 cdev_alloc和cdev..

评论

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

·C语言中,“指针”用 (2025-12-26 15:20:18)
·在c语言的指针运算中 (2025-12-26 15:20:15)
·C语言-函数指针与函 (2025-12-26 15:20:12)
·求navicat for mysql (2025-12-26 13:21:33)
·有哪位大哥推荐一下m (2025-12-26 13:21:30)