内存的slab算法
来源:互联网 发布:韩信战争知乎 编辑:程序博客网 时间:2024/05/07 01:32
•Slab分配模式把对象分组放进缓冲区(尽管英文中使用了Cache这个词,但实际上指的是内存中的区域,而不是指硬件高速缓存)。因为缓冲区的组织和管理与硬件高速缓存的命中率密切相关,因此,Slab缓冲区并非由各个对象直接构成,而是由一连串的“大块(Slab)”构成,而每个大块中则包含了若干个同种类型的对象,这些对象或已被分配,或空闲。
上面是slab算法的定义。由此我们可以看出,slab算法是把一块大内存分成很多的页,多少页作为一个slab,然后把申请的内存作为对象,每一类对象都有一个slab来保存对象。
上图可以看出slab算法的基本思路。
根据申请内存大小,我们可以按照下面的划分方法,来划分对象。
*Alloc SizeChunking Number of zones *0-127816 *128-255168 *256-511328 *512-1023648 *1024-20471288 *2048-40952568 *4096-81915128 *8192-1638310248 *16384-3276720488
有了上面的一些基础。我们就可以来一步步实现slab算法。
首先是内存的初始化
在这里我们需要把内存按照页对齐,才能把内存初始化成整页。初始化一些slab的基本参数:slab大小,页数目,页链表,页大小等参数。
内容待续,等整理以后上传。。。
- 内存的slab算法
- Linux内核内存管理之SLAB内存管理算法(三) --slab对象的分配与释放
- 内存管理-SLAB(SLAB的基本数据结构)
- 内存管理-SLAB(SLAB的基本数据结构)
- linux内存管理slab算法之slab初始化
- 内存分配-----伙伴算法和slab算法
- linux 内存的slab分配器
- 关于cache line 。内存分配算法 slab
- Linux内核内存管理之SLAB内存管理算法(三) --基本数据结构及slab分配
- Slab 算法
- 内存管理 - 11.7 slab分配器的接口
- Nginx的slab page内存缓存机制
- 内存slab分配器的设计与实现
- linux 内存管理的slab机制分析
- linux内存管理算法 :伙伴算法和slab
- glib的slab算法实现学习
- 内存管理简介之Buddy算法和slab分配
- 内存管理简介之Buddy算法和slab分配
- 母亲节体会
- 嵌入式linux启动信息完全注释
- 数据结构——线性表
- 控制兄弟frame的大小
- Facebook之Thrift简介
- 内存的slab算法
- MySQL多主同步 负载均衡
- 以单词为单位的逆序算法
- 表达式转二叉树、计算带括号和浮点数的表达式
- AF_DataRequest详解
- 二分查找——递归和非递归
- 嵌入式系统 Boot Loader 技术
- hive安装
- PLSQL提交请求集