diff --git a/zh-cn/device-dev/kernel/kernel-small-basic-memory-heap.md b/zh-cn/device-dev/kernel/kernel-small-basic-memory-heap.md index b48497b6fe520d6016ef3cd1bf33ec82f39e39f1..03865134dc388cfba4644d6a3b10110f3d3bfdca 100644 --- a/zh-cn/device-dev/kernel/kernel-small-basic-memory-heap.md +++ b/zh-cn/device-dev/kernel/kernel-small-basic-memory-heap.md @@ -19,6 +19,7 @@ 堆内存管理,即在内存资源充足的情况下,根据用户需求,从系统配置的一块比较大的连续内存(内存池,也是堆内存)中分配任意大小的内存块。当用户不需要该内存块时,又可以释放回系统供下一次使用。与静态内存相比,动态内存管理的优点是按需分配,缺点是内存池中容易出现碎片。OpenHarmony LiteOS-A堆内存在TLSF算法的基础上,对区间的划分进行了优化,获得更优的性能,降低了碎片率。动态内存核心算法框图如下: **图1** 小型系统动态内存核心算法 + ![zh-cn_image_0000001146437734](figures/zh-cn_image_0000001146437734.png) $$根据空闲内存块的大小,使用多个空闲链表来管理。根据内存空闲块大小分为两个部分:[4, 127]和[2^{7}$, 2^{31}$],如上图size class所示: @@ -32,6 +33,7 @@ $$根据空闲内存块的大小,使用多个空闲链表来管理。根据内 内存管理结构如图2所示: **图2** 小型系统动态内存管理结构图 + ![zh-cn_image_0000001180855455](figures/zh-cn_image_0000001180855455.png) - 内存池池头部分