论文摘要
嵌入式系统可以以最高效的方式执行一些专门的任务,因此它在人类生活的各个方面都得到了应用。绝大多数嵌入式系统对时间控制的要求很高,因此嵌入式系统也被认为是实时系统,这种系统要求在限定的时间里对某一事件做出反应并完成处理。Java是一门面向对象的语言,在很多软件开发领域里它都得到了广泛的应用。Java的一些优点,比如跨平台、自动内存管理以及指针算法的取消对于嵌入式实时系统的开发者来说很具有吸引力。然而,由于Java的类动态装载和垃圾收集技术导致了任务执行时间的不可预测性,以及嵌入式系统对各方面资源的苛刻限制,Java很少被用于嵌入式实时系统应用领域。针对传统Java技术在嵌入式实时系统开发方面的不足,一些新的Java语言规范被推出。其中,Sun公司联合IBM、Microware等公司制定的实时Java规范(RTSJ)为实时Java平台的实现提供了参考。实时Java规范对Java进行实时性扩展的几个地方包括调度、内存管理、线程、同步、计时、时钟和异步事件处理。随着实时Java规范的推出,如何实现适用于嵌入式系统的高效实时Java平台就成为了研究热点。论文的主要研究内容是如何改进传统的类装载器,使其消除动态类装载对实时性能的不利影响。本文设计的类装载器采用了提前装载、早解析的方式,它可以在应用程序被执行前就装载完所有涉及到的类,所有非实时的操作,如类的装载、解析和连接、字节码的优化、空间分配都在程序运行前得到处理,最后由类装载器生成的内存映像文件可以被Java处理器执行。Java处理器在执行应用程序过程中不再进行装载。为了降低Java处理器硬件实现的复杂度,提高Java处理器的执行效率,论文还对Java字节码中的一些复杂指令进行了简化。简化后的指令在操作码字段上与原来的相同,只是对操作数进行替换。由于进行了早解析,原先操作数中保存的间接引用都可以被替换成直接引用。Java处理器在执行简化后的指令时,可以直接得到所需要的信息,从而避免了运行时常量池解析。实验结果表明本文设计的类装载器可以提前装载应用程序涉及到的所有类,Java处理器在执行程序时所需要的所有信息都被保存到了生成的内存映像文件中,从而提高了系统的实时性。