论文部分内容阅读
随着嵌入式技术的不断发展,嵌入式系统在人们的社会生活中得到了广泛的应用。针对嵌入式系统内存分配具有高效性、可靠性和实时性等要求,每种嵌入式系统结合自己的实际应用情况,都采用自己的内存管理方案。PTmalloc作为当前嵌入式系统的主流内存管理方案,其稳定性、全面性等特点决定了其在嵌入式系统中的地位。但PTmalloc对多线程情况下大批量的内存申请、释放的处理速度不能很好的满足路由器等设备的要求,并可能造成极大的内存空间浪费。本文从PTmalloc的基本原理出发分析了PTmalloc的优点和缺点,得出了PTmalloc对大批量内存处理速度慢的原因:arena与线程不是严格的一一对应,从而导致了频繁的加解锁操作。Tcmalloc作为应用于服务器的内存管理方案,其对多线程情况下大批量的内存申请、释放的处理速度能很好的满足路由器等设备的要求。本文从tcmalloc的基本原理出发分析了tcmalloc的优点和缺点,得出了tcmalloc会导致嵌入式系统所不能容忍的内存浪费。本文结合PTmalloc与tcmalloc的优、缺点,提出了一种新的内存管理方案,主要体现在以下几个方面:1)以tcmalloc的多级缓存为基本框架,引用PTmalloc的切割方式来实现内存块的切割;2)根据实际的应用情况,细化内存块的分类;3)引入缓存控制机制来控制缓存,降低内存浪费;4)提供内存诊断功能来用于帮助解决非法内存操作而导致的各种bug;通过在实际设备上的测试,本内存管理方案对多线程情况下大批量内存申请、释放的处理速度要比PTmalloc好,内存缓存而导致的内存浪费情况得到了很好的解决。