From 42404230d40c2d605cb65a922718fc4cb4911459 Mon Sep 17 00:00:00 2001 From: wdfk-prog <1425075683@qq.com> Date: Fri, 19 Apr 2024 20:36:22 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91=E5=86=85?= =?UTF-8?q?=E5=AD=98=E7=AE=A1=E7=90=86=E6=96=87=E6=A1=A3=E4=B8=AD=20small?= =?UTF-8?q?=20mem=20=E6=8F=8F=E8=BF=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../memory/figures/08smem_work4.png | Bin 0 -> 52729 bytes .../programming-manual/memory/memory.md | 24 +++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 rt-thread-version/rt-thread-standard/programming-manual/memory/figures/08smem_work4.png diff --git a/rt-thread-version/rt-thread-standard/programming-manual/memory/figures/08smem_work4.png b/rt-thread-version/rt-thread-standard/programming-manual/memory/figures/08smem_work4.png new file mode 100644 index 0000000000000000000000000000000000000000..92544169d0328f49a1d2753f1ad54f817b37f4c5 GIT binary patch literal 52729 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 Qc;HWWqrrxBEt`}73)|}1=Kufz literal 0 HcmV?d00001 diff --git a/rt-thread-version/rt-thread-standard/programming-manual/memory/memory.md b/rt-thread-version/rt-thread-standard/programming-manual/memory/memory.md index da40935..5e55d3c 100644 --- a/rt-thread-version/rt-thread-standard/programming-manual/memory/memory.md +++ b/rt-thread-version/rt-thread-standard/programming-manual/memory/memory.md @@ -43,7 +43,13 @@ RT-Thread 操作系统在内存管理上,根据上层应用及系统资源的 ### 小内存管理算法 -小内存管理算法是一个简单的内存分配算法。初始时,它是一块大的内存。当需要分配内存块时,将从这个大的内存块上分割出相匹配的内存块,然后把分割出来的空闲内存块还回给堆管理系统中。每个内存块都包含一个管理用的数据头,通过这个头把使用块与空闲块用双向链表的方式链接起来,如下图所示: +小内存管理算法是一个简单的内存分配算法。初始时,它是一块大的内存。当需要分配内存块时,将从这个大的内存块上分割出相匹配的内存块,然后把分割出来的空闲内存块还回给堆管理系统中。每个内存块都包含一个管理用的数据头,通过这个头把使用块与空闲块用双向链表的方式链接起来。 + + + +**在4.1.0之前使用此实现** + +如下图所示: ![小内存管理工作机制图](figures/08smem_work.png) @@ -56,6 +62,22 @@ RT-Thread 操作系统在内存管理上,根据上层应用及系统资源的 内存管理的表现主要体现在内存的分配与释放上,小型内存管理算法可以用以下例子体现出来。 + + +**4.1.0及以后版本使用此实现** + +如下图所示: + +![](figures/08smem_work4.png) + +**堆开始**:堆起始地址存储内存使用信息,堆起始地址指针,堆结束地址指针,最小堆空闲地址指针和内存大小。 + +每个内存块(无论是已分配的内存块还是空闲的内存块)都包含一个数据头,包括: + +**pool_ptr**:小内存对象地址。如果内存块的最后一位为1,则标记为使用。如果内存块的最后一位为0,则标记为未使用。可以通过该地址计算快速获得小内存算法结构体成员。 + + + 如下图所示的内存分配情况,空闲链表指针 lfree 初始指向 32 字节的内存块。当用户线程要再分配一个 64 字节的内存块时,但此 lfree 指针指向的内存块只有 32 字节并不能满足要求,内存管理器会继续寻找下一内存块,当找到再下一块内存块,128 字节时,它满足分配的要求。因为这个内存块比较大,分配器将把此内存块进行拆分,余下的内存块(52 字节)继续留在 lfree 链表中,如下图分配 64 字节后的链表结构所示。 ![小内存管理算法链表结构示意图 1](figures/08smem_work2.png) -- Gitee