From 57acd36c029e240841f1b801e2acd84bd8bf8745 Mon Sep 17 00:00:00 2001 From: Austin Date: Wed, 6 Apr 2022 02:51:25 +0000 Subject: [PATCH] update zh-cn/device-dev/kernel/kernel-small-basic-memory-heap.md. Signed-off-by: Austin --- zh-cn/device-dev/kernel/kernel-small-basic-memory-heap.md | 2 ++ 1 file changed, 2 insertions(+) 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 b48497b6fe..03865134dc 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) - 内存池池头部分 -- GitLab