FreeRTOS内存碎片是怎么来的

内存碎片
在看 freertos的内存分配方法之前我们先来看一下什么叫做内存碎片,看名字就知道是小块的、碎片化的内存。那么内存碎片是怎么来的呢?内存碎片是伴随着内存申请和释放而来的,如图所示。
(1)、此时内存堆还没有经过任何操作,为全新的。
(2)、此时经过第一次内存分配,一共分出去了 4 块内存块,大小分别为 80b、80b、10b 和100b。
(3)、有些应用使用完内存,进行了释放,从左往右第一个 80b 和后面的 10b 这两个内存块就是释放的内存。如果此时有个应用需要 50b的内存,那么它可以从两个地方来获取到,一个是最前面的还没被分配过的剩余内存块,另一个就是刚刚释放出来的 80b 的内存块。但是很明显,刚刚释放出来的这个 10b
的内存块就没法用了,除非此时有另外一个应用所需要的内存小于10b。
(4)、经过很多次的申请和释放以后,内存块被不断的分割、最终导致大量很小的内存块!也就是图中 80b 和 50b这两个内存块之间的小内存块,这些内存块由于太小导致大多数应用无法使用,这些没法使用的内存块就沦为了内存碎片!
内存碎片是内存管理算法重点解决的一个问题,否则的话会导致实际可用的内存越来越少,最终应用程序因为分配不到合适的内存而奔溃!freertos 的
heap_4.c 就给我们提供了一个解决内存碎片的方法,那就是将内存碎片进行合并组成一个新的可用的大内存块。

你问我如何防晒?拜托你快看防晒帽品牌排行榜
采用A723构成的输出20A 5V稳压电源电路
世界级算法之父分享波音、通用电气的“优化”秘密
OPPO将发布自研智慧跨端系统“潘塔纳尔”
容量相同质量不同,关于SSD这些接口你要懂
FreeRTOS内存碎片是怎么来的
日本Hosiden与Valens展开合作,并加入不断扩大的MIPI A-PHY生态系统
语音车联网助力智能座舱腾飞
大联大友尚集团推出基于ST产品的数字电源解决方案
聊聊在高并发场景下如何优化服务器的性能?
常用的电源电路结构:阻容降压电源/线性电源/开关电源
车身控制器测试系统解决方案
奥迪用500架无人机把全新奥迪A8L送上了天,震撼的视觉效果堪比奥运开幕
Littelfuse 亚洲公司获得 TTI 亚洲颁发的 2015 年度白金优秀供应商奖
西门子、阿里云达成合作 沃尔沃将在印生产纯电动车
三星GalaxyNote10曲面钢化膜曝光 后置3个摄像头
澳大利亚卫生部正在利用区块链来记录医疗访问数据
宝骏310W将于7月11日上市,预售价4.48万起!!!
优化信号链的电源系统 — 第2部分:高速数据转换器
电子管胆味校声电路的改进