论文部分内容阅读
随着Java语言在计算机软件开发领域的广泛使用,人们开始考虑把它用于实时系统开发的可能性。经过一批专家的努力,《实时Java规范》(简称RTSJ)[1]的最终版本在2001年11月公布。在RTSJ推出后,很多个人和组织投入到规范的研究中,这些研究包括关于RTSJ机制的理论研究,也包括关于如何实现RTSJ的实际研究。实时Java规范为其实现者提供了足够的灵活性,使他们可以构造出适合自己需求的实现。
在这篇论文的工作中,我们深入研究和分析了实时Java规范,分析了Timesys公司为规范提供的参考实现,进而提出了基于公开源码的Java平台Kaffe[3]实现实时Java规范的一种思路。Kaffe是用C语言开发的一个Java虚拟机的完整实现,源代码完全公开。我们对Kaffe虚拟机进行了一系列的修改和扩充,增加了其对实时Java规范的支持,同时还提供了实时类库的一个简单实现。
实时Java规范是对标准Java规范[8]的扩充,而最主要的扩充之一就在于为了实时应用的需要,扩充了Java虚拟机的内存管理功能,提出了基于作用域的领域内存,以及不朽内存、物理内存等概念。本文的主要工作集中在讨论实时Java规范的内存模型及其实现细节。实时Java规范的线程模型和内存模型紧密地联系在一起,是内存模型的主要使用者,因此我们也研究了线程模型的设计和实现问题。