微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Buddy算法的μC/OSII高可靠内存管理方案

Buddy算法的μC/OSII高可靠内存管理方案

时间:03-08 来源:互联网 点击:

查询内存中是否有满足需要的内存块。如果没有则作好相应的规避措施,进一步提高内存管理的可靠性,使系统更稳定。

5 实验结果及性能分析

针对改进前后μC/OSII内存管理策略的特点,设计一组具有代表性的测试用例来分析μC/OSII系统在改进前后内存管理的可靠性和灵活性。实验环境为ARM Develop Suit V1. 2及三星公司S3C2440微控制器,由于S3C2440片内包含MMU模块,所以需要将协处理器CP15的C1寄存器0位置0,以禁用MMU功能。

假设两种方案内存初始化都创建了5个分区,每个分区中所含内存块为10个,且这5个内存分区中的内存块大小依次为16 B、32 B、64 B、128 B、256 B。原方案创建分区时要调用5次OSMemCreate()函数,而改进方案只需调用一次。表1是申请内存块大小与两种方案可以满足的次数之间的关系。

表1 申请内存块大小与两种方案可以满足的次数比较

由表1的数据及图4的对比曲线可看出,改进方案与原方案在可用内存完全相同的情况下,使内存的利用率大大提高。因为可靠性与可满足次数正相关,而可满足次数与曲线与坐标轴围成的面积成正比,所以该面积与可靠性正相关。新方案曲线所围图形面积为12960, 而原方案曲线所围成的图形面积为2400。所以新方案的可靠性将比原来方案提高大约4倍,而且申请内存块越小,可满足次数越多,提高了内存分配的灵活性。

图4 两种方案可满足次数对比曲线

6 结语

本文的创新之处在于针对μC/OSII在内存管理可靠性不高、内存块分配不够灵活的特点,借鉴Buddy算法思想,对其进行改进,形成了一种基于Buddy算法思想、高可靠性的内存管理策略。实验表明,新方案一次创建内存区,即可满足内存块大小需求不均匀的场合,既提高内存分配的灵活性,避免了大量内碎片的产生,又增强了内存分配的可靠性。因此,新方案在可靠性要求高的嵌入式系统中可以得到更好的应用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top