小议LWIP——内存管理

对于嵌入式系统而言,内存管理始终是最重要的一环,内存管理的选择将从根本上决定内存分配和回收效率,最终决定系统的性能。LWIP为使用者提供两种简单却又高效的内存管理机制:动态内存池管理、动态内存堆管理。

动态内存池管理策略

动态内存池是相当简单高效的一种分配策略,原理就类似我们去买鞋子,因为大家的脚无非就是这几种码数,所以厂商就先生产好确定码数的鞋子,比如这种球鞋厂商就生产39、40、41、42、43、44码,客户来买鞋子,直接试穿就可以买走了。所以直观的特点就是分配相当简单,相当快速。

  1. 设计目的
    LWIP中存在很多固定的数据结构,这些结构的特点就是在使用之前就已经知道了数据结构的大小,而且这些是在使用的过程中不会发生大小改变的。比如在建立一个TCP连接的时候,LWIP需要使用一种叫做TCP控制块的数据结构,这种数据结构大小是固定的。所以为了满足这些数据类型分配的需要,在内存初始化的时候就建立了一定数量的动态内存池POOL。

  2. 原理探析
    内存块就好像上面提到的鞋子,系统会根据用户的宏定义确定下初始化时需要预先生产确定数量和类型的内存块(就好像生产多少数量和类型的鞋子一样)。但是生产出来的内存块不能乱放,因为到时用户过来取内存块的时候你要很快的分配相应的内存块给用户。所以LWIP将相同类型的内存块放在一起,并用链表进行串起来,比如在初始化的时候用户确定下在使用的过程中,我大概会用10字节内存块3个,20字节内存块4个,30内存块2个,那么就会有如下组织示意图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值