Alios things内核篇三:内存管理

本文介绍了AliOS Things 2.1的内存管理,包括管理算法、空闲内存链表、内存申请和释放过程。堆管理和小内存优化算法用于内存管理,通过不同等级的空闲链表提高效率。内存申请时,若无法从pool分配,则从相应等级的空闲链表中寻找,释放内存时则可能涉及合并操作。
摘要由CSDN通过智能技术生成

内存管理

看的是alios things 2.1的代码。个人水平有限,只能粗略讲一下alios things的内存管理。如有错误,请指正。

管理算法

alios things内存管理用到2种管理算法:堆管理和小内存优化算法。

堆管理算法使用配置:RHINO_CONFIG_MM_TLF 1
小内存优化算法配置:RHINO_CONFIG_MM_BLK 1

先进行堆管理内存初始化,初始化后的内存可以这样表示:

head firstblk midblk lastblk

head:头部,保存k_mm_head结构体信息
firstblk:第一个内存块,保存region信息
midblk:中间块,空闲堆。以后申请和释放所使用的内存都是从这里分配出去的。
lastblk:最后一个块,标志region结尾,防止被合并

接着进行小内存算法的初始化,初始化后可以这样表示:

head firstblk pool midblk lastblk

pool:指的是总体的小内存。实际上pool就是从midblk中分配出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值