论文部分内容阅读
μCOS-Ⅲ作为一个开源免费、可剪裁、稳定高效的嵌入式实时操作系统,其前身μC/OS-II已经在各个领域的应用中得到了认可,并处于成熟阶段。而μCOS-Ⅲ作为新一代嵌入式实时系统,在μC/OS-II上基础上进化成为全新的系统,不仅在功能上得到了如任务数量不受限制的扩展,而且具有了诸多如加入时间片轮转调度方法等新特性。然而还处于发展阶段的μCOS-Ⅲ在内存管理上的静态分区式管理展示出内存分配不够灵活和控制内存碎片上的不足,有必要对μCOS-Ⅲ的内存管理方法进行有针对性的研究,来应对未来实际应用上更多任务、更多复杂功能的需求。动态内存管理相对静态的内存分区管理更具灵活性。作为经典动态内存管理方法的伙伴算法在一定程度上解决了空间存储效率的问题,同时也对应对内存碎片问题有所帮助,但伙伴算法在应对多任务管理时同样存在不足,内部碎片问题并没用得到很好解决,内存空间存在剩余部分无法被利用,申请内存空间的任务越多,这种情况越严重,内存利用率降低,嵌入式系统产品设备的整体性能下降。针对此情况,本文在伙伴算法的基础上进行改进并设计出适应于μCOS-Ⅲ嵌入式实时系统的内存管理方法,重点研究减少内部碎片的产生,改进回收机制,设计适应于μCOS-Ⅲ嵌入式实时系统多任务需求的内存管理方法。在系统为任务分配内存时将同为伙伴关系的内存块靠后部分进行分配,确保空闲区域在所被分配内存块的前端。回收过程不受伙伴算法中2的幂次方约束,从后向前寻找链表中的互为伙伴关系的内存块,减少内部碎片的产生。将设计好的管理方法移植到μCOS-Ⅲ系统中,使μCOS-Ⅲ嵌入式实时系统能够为未来具有特定需求的应用服务。通过实验数据的对比分析,嵌入式实时系统μCOS-Ⅲ在内存管理上得到改进,改进后的动态内存管理方法相较原有的静态内存管理方法内存利用率得到提高,有效减少了内部碎片的产生。此改进在内存方面将为未来的复杂功能需求提供有利帮助。