论文部分内容阅读
随着嵌入式实时软件系统的规模越来越大,复杂度迅速增加,内存管理也越来越重要,用垃圾搜集器(GC)进行自动内存管理克服了人工内存管理所导致的潜在危险,例如内存泄漏,指针悬挂,内存碎片等。然而,传统的GC在运行时需要停止所有进程的执行,这显然是不适合实时系统的。因此对垃圾搜集器的实时化的研究,将其应用于大规模嵌入式实时系统软件的开发,可以提高嵌入式实时软件开发的效率,对于缩短开发周期,提高系统安全可靠性方面具有重要的意义。论文论述了垃圾搜集器对嵌入式实时系统的作用和意义,介绍了实时垃圾搜集器的发展演变历程,几种具有代表性的垃圾搜集器算法和实时垃圾搜集器策略。由于嵌入式实时系统往往存在于资源有限的环境中,论文着重研究了如何在保证垃圾搜集器实时性的条件下,降低系统内存需求的方法。主要的贡献和创新之处包括:1.全面系统地总结了实时垃圾搜集器发展演变的历程和分布式垃圾搜集器的发展现状。嵌入式实时系统往往应用在资源有限的环境中,在分析了现有的实时垃圾搜集器的基础上,提出了动态GC策略,该策略使GC在执行过程中可以动态地根据任务的状态来依次处理各任务的内存空间,从而在保证系统硬实时的条件下降低了系统的内存需求,另外,动态延迟法使GC在任务都变为非活动状态时再回收其内存空间,可以节余一定的非周期任务服务器时间片用以调度非周期任务,从而提高了系统灵活性。2.在调度策略上提出了用EDF调度GC的方法,通过内存分析和仿真实验证明如果系统中的任务数不多,即不考虑调度开销的条件下,用EDF调度GC可以在保证系统硬实时任务满足时限的条件下进一步降低系统内存需求,并且使系统可调度非周期任务,灵活性更高。3.系统研究了当前混杂垃圾搜集器算法。提出了渐进式回收循环垃圾的方法,可以在当前GC循环中渐进地回收循环垃圾以供系统重用,从而降低了系统内存需求。还提出了引用计数与时间戳的混杂GC算法,该算法同样可以在保证系统实时性的条件下,在当前GC循环中局部回收循环垃圾并及时供系统重用,从而降低系统内存需求,而且该算法的执行时间与系统全局对象数无关,因此与采用全局标记清除算法的GC策略相比,该算法更适用于大规模系统。4.系统研究了分布式垃圾搜集器的发展现状和几种典型的分布式GC策略。提出了基于关键引用验证的分布式垃圾搜集器,该算法可以在最短时间内回收循环垃圾,因而保证节点内存不会被耗尽,从而使算法具有一定的实时性,该算法尽管需要一些存储开销为代价,但其它开销较小,易于实现,并具有很好的容错性,因而综合性能较高。还提出了面向角色的混杂GC算法,与现有的面向角色系统的分布式垃圾搜集器相比,该算法具有容错性,更加适用于大规模系统。目前国内外研究机构对实时垃圾搜集器的研究还处于发展阶段,存在许多待解决的问题。本文分别对实时垃圾搜集器的调度策略,混杂垃圾搜集器算法以及分布式垃圾搜集器等几个方面进行了深入的研究和实践,并提出了自己的算法策略,为提高实时垃圾搜集器性能作出了应有的贡献。