VxWorks实时操作系统内存分配算法优化
2016-03-13中国科学院软件研究所李彦峰李丽颖山东农村信用社联合社韩广志金陵科技学院徐尚喻
电子世界 2016年5期
中国科学院软件研究所 李彦峰 李丽颖山东农村信用社联合社 韩广志金陵科技学院 徐尚喻
VxWorks实时操作系统内存分配算法优化
中国科学院软件研究所 李彦峰 李丽颖
山东农村信用社联合社 韩广志
金陵科技学院 徐尚喻
【摘要】通过研究VxWorks实时系统内存分配算法,发现VxWorks的内存管理算法的局限性。本文提出通过在VxWorks实时操作系统原有的内存管理功能上添加功能,用于实现固定大小内存分配。新增加的功能利用位图管理内存,通过降低内存管理信息占整个内存块的比率提高内存使用效率,通过将固定大小的内存片合并为一组进行整体的内存分配来降低内存碎片;同时由于减少了内存碎片,从而间接提高内存的分配速度。
【关键词】内存分配;位图管理;内存碎片;分配效率
0 引言
VxWorks内存管理是基于Flat模式实现的,管理框架分为分区(Partition)、Pool(池)、Block(块)。系统中的具体实现为分区结构体memSysPartition,内存中的空闲内存通过这个结构体的成员变量freelist链接起来。VxWorks原有的内存分配实现相对而言比较简单——所有任务的内存分配请求调用malloc函数从系统内存分区memSysPartition中获得。内存请求分配时利用最先适应算法从系统分区结构中来满足内存分配请求,而内存回收时则会将相邻地址的空闲内存给聚合成一个更大的空闲内存。
VxWorks的以上内存分配设计没有考虑小内存分配请求的优化,很容易导致下列问题:第一,当系统中存在大量的小内存分配请求时,就可能使得内存中出现较多的内存碎片;……
登录APP查看全文
