论文部分内容阅读
随着多媒体信息技术和互联网的飞速发展,以及消费类电子产品智能化趋势的加强,嵌入式系统得到越来越广泛和深入的应用。在航空航天、工业控制、医疗等重要领域中,嵌入式系统的安全性和可靠性显得尤为重要。内存管理技术的研究对保证嵌入式实时系统中数据储存的安全性和可靠性具有重要意义。动态内存管理的基本任务就是有效地对动态内存进行分配、回收,并同时保证系统的快速性、可靠性和稳定性。本文面向嵌入式实时应用的需求,融合最先适应法和伙伴算法的精髓,并针对这两种算法的不足之处,提出了一种新的适用于嵌入式系统的动态内存管理方案-----自适应动态内存管理算法,重点就如何减少内存碎片、如何快速实现内存分配释放回收、以及如何提高内存利用率,提出了新的构想与实现。该算法将大块内存的申请与小块内存的申请分开处理,对于小块的内存分配采用固定大小的内存分配方式,减少了内存碎片的产生,而大块内存分配采用按请求的实际大小来分配的内存分配方式,有效的提高了内存利用率;物理块链表的引入弥补了传统最先适应法中内存释放回收时间过长的问题,节约了释放已分配块和合并相临空闲块的时间;统计域记录了相应空闲链表中内存块被应用程序所请求的频率,使空闲块链表的调整有了依据,使自适应性得到了充分的体现;分割后剩余内存块最先被分配的原则避免了去分割其他的大块内存,将问题归结于局部,这在一定程度上也加快了内存分配的速度并减少了内部碎片的产生。另外,本文针对嵌入式应用中经常遇到的动态内存泄漏问题,给出了一种基于自适应动态内存管理算法的动态内存泄漏检测方法,实现了对内存泄漏或内存重复释放的精确定位,对保证系统稳定、可靠的运行起到了一定的促进作用。该方法利用自适应动态管理算法的日志记录实现了对动态内存的跟踪,通过对日志记录扫描分析,可以准确的检测出系统中是否发生了内存泄漏或内存重复释放操作,并可确定发生内存泄漏或内存重复释放操作的文件名、行号、操作时间等相关信息。最后,文章通过几个模拟实验验证了自适应动态内存管理算法及内存泄漏检测方法的实际可行性和优越性。