论文部分内容阅读
Java是一种适合于分布式计算的面向对象程序设计语言。自从SUN公司1995年5月发布Java以来,在短短几年时间,Java已风靡全球,成为最热门的程序设计语言。实时Java技术是一项比较新的技术,它是在Java的基础上进行扩展使其适应于实时应用开发。实时Java(Real-Time Java,RTJava)自己就能处理某些实时系统,它很适合于那些要求不太苛刻的实时应用环境。对于编写交互式应用系统的程序员来说,实时Java可能是最有用的。 实时Java的扩展目的是在不丧失与现有的Java代码的兼容性的前提下,朝实时方向对平台进行适度扩展。这一扩展不是为了使Java运行得更快。不过更快的的硬件或者改进的算法能够对Java的固定额外开销予以补偿。这是标准Java被扩展到实时领域时所作出的选择:用处理器时间上的额外开销,换来更强壮的软件和更快的开发速度。 本文首先介绍了Java编程语言特点及实时Java平台,详细分析了Java应用在实时环境中的不利因素以及要实现实时Java需要对哪些方面进行改进。这些需要改进的方面既有Java本身的虚拟机、字节码分析器、字节码翻译等内容,又有实时执行、实时任务方面的内容。 通过对RTSJ(实时Java规范)及其APIs的研究分析,对它在传统的Java基础上扩展的各个方面进行了讨论。我们知道,该实时Java规范是对标准Java规范的一个扩展,增加了一些提高实时性能的内容。 在实时Java规范的基础上给出了一种基于多线程扩展的模式。讨论了实时线程和无堆实时线程的构造函数的实现语法和各个参数代表的意义,还给出了实时线程的一些主要方法。并对RTSJ采用的固定优先级抢占调度策略的利与弊进行了说明,基于此提出了分时间片的动态优先级调度策略,将Java的运行时分成时间片,尽量满足实时任务的开始时限(即开始响应时间),这是一种比较适合于实时交互式系统的调度策略。本论文还提出了这种策略的调度器的实现语法,以及如何将它设为默认的调度器。对高优先级线程与低优先级线程进行通信或高优先级线程与广东工业大学工程硕士学位论文低优先级线程共享某个资源时可能出现的优先级逆转问题,本论文讨论了三个避免优先级逆转的方法:优先级继承机制、优先级限高机制、线程复制机制。论文最后还给出了一个国际象棋实时游戏系统的例子,并给出了部分设计。