- 简述
- 内存管理是指运行时对计算机内存资源的分配和使用的技术
- 其目的是如何高效、快速的分配,并且在适当的时候释放和回收内存资源
- 内存管理函数只有两个:内存申请malloc(),内存释放free()
- 分块式内存管理
- 框图
- 组成:
- 内存池
- 内存管理表
- 内存池被等分为n块,对应的内存管理表,大小 也为n,内存管理表的每一个项对应内存池的一块内存
- 内存管理表项值意义:项值为0,表示对应的内存块未被占用,非0,己占用
- 分配方向:顶->底,即首先从末端开始找空内存,初始化时内存表全部清零
- 申请原理
- 指针p调用malloc函数申请内存时,先判断p要分配的内存块数(m)
- 然后从第n项开始,向下查找,直到找到m块连续的空内存块,然后将m个内存管理表项的值都设置为m(非0)
- 内存不够,如果没有找到m块空闲内存,则返回null给p,表示分配失败
- 释放原理
- 指针p调用free函数,先判断p指向内存地址所对应的内存块,找到对应的内存管理表项目
- 得到p所占用的内存块数目m,将m个内存管理表项目值都清零,标记释放
- 内存池地址范围
- 普通内存:起始地址:0x2002 0000,大小:384
- 框图
【14】、STM32F767——————>内存管理
最新推荐文章于 2024-11-30 11:21:40 发布
本文深入探讨了分块式内存管理技术,包括其基本原理、内存池与管理表的构成,以及内存申请与释放的具体流程。通过实例代码,详细解释了如何在不同内存区域进行高效内存管理。


最低0.47元/天 解锁文章
696

被折叠的 条评论
为什么被折叠?



