您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术嵌入式系统内存管理方案研究 正文
嵌入式系统内存管理方案研究

嵌入式系统内存管理方案研究

点击数:7218 次   录入时间:03-04 11:39:06   整理:http://www.55dianzi.com   嵌入式系统-技术

空闲段和已经使用段的控制结构有所不同,如图4所示。

RTEMS的分区管理机制提供以下API:

rtems_region_create 创建一个分区

rtems_region_ident 获得分区的标识

rtems_region_delete 删除一个分区

rtems_region_extend 扩展一个分区

rtems_region_get_segment 申请一个段

rtems_region_return_segment 释放一个段

RTEMS的可变长度分区管理算法有以下特色:

①系统创建的分区数目可在运行时动态增加;

②段的控制结构在该段被分配出去后会减小,而在回收到控制快会自动恢复大小。这一点使得分区管理的系统开销降低到最小;

③时应用程序发现一个分区的内存空间不够使用时,可以调用retms_region_extend函数(API)扩展该分区的大小。

④当程序要求从某个分区获取分段而未成功时,可以立即返回,也可以采取多种等待策略。等待策略包括优先级等待、FIFO等待。在FIFO等待策略中又可分为有限等待和无限等待。

在动态可变长度内存管理的基础上,RTEMS还提供了Malloc/free等标准的C函数。在使用Malloc/free等函数时应注意以下几个方面的限制:

①因为内存分区是一种临界资源,由信号量保护,使用Malloc会导致当前调用挂起,因此它不能用于中断服务程序。

②因为进行内存分配需要执行查找算法,其执行时间与系统当前的内存使用情况相关,具有不确定性,因此对于有规定时限的操作是不适宜的。

③由于采用简单的首次适应算法,容易导致系统中存在大量的内存碎片,降低内存使用效率和系统性能。

4 结论

为了使嵌入式系统能够在不同的平台上进行移植,使之使用与各种应用环境,嵌入式系统内存管理方案在充分考虑实时性、可靠性和高效性的基础上,应该提供比较丰富的管理机制。本文分析了嵌入式系统中内存管理的要求、存在的问题,介绍了静态和动态两种分配策略;以开源的RTEMS系统为例,介绍了嵌入式系统中常用的内存管理方法,并对各种方法的特点进行了阐述,在实际应用时,可根据需求作出相应的选择。



上一页  [1] [2] 


本文关键字:嵌入式  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术