作者:michaelzyy;michaelzyy
原文:http://www.matrix.org.cn/resource/article/2006-11-28/JAVA+Real+Time_72f1a994-7e38-11db-babc-9753a314dd4b.html
实时是什么意思呢?
Greg Bollella ,是Sun公司的一个杰出的工程师,实时JAVA规范的作者之一,它说,实时意味着“能够可靠的可预测的推测和控制程序逻辑的时间行为的能力。”实时并不像许多开发者想的那样,意味着速度,而是意味着当需要对现实世界的事件作出反应时,它的行为是可预测的和可靠的。实时的电脑总是在限定的期限之内作出反应。取决与所设定的的期限,大量的系统可以被称作是实时的。
很多程序不能允许即使是一秒的延迟;他们包括之前提到的金融软件,飞机控制软件,核电站控制软件等等。所以,这些并不完全是对速度要求很高的,尽管实时平台的设计师会努力使得程序变快。显而易见,标准的JAVA平台并不符合这些实时系统的要求,这也写入了J2SE和J2EE的许可证协议中,这些协议明确的声明JAVA不能用于核电站设施软件和防卫系统等等。
实时JAVA
开发实时应用程序需要一个能够允许开发者正确的控制程序的运行时间以及程序在现实中的行为PI集合和语义。因此JAVA的实时版本必须提供一些JVM的增强以及一个适合实时程序的API集合。毫不奇怪,在JAVA中添加实时的特性最大的障碍在于它的垃圾收集器。Sun最近发布的JAVA实时版本RTS1.0中就包含了一个革命性的核心的实时的垃圾收集器。尽管它的第一个实现中并没有包含这样一个垃圾收集器(将在下一个release版本中将增加)。JAVA RTS 提出了其他一些问题,保证线程调度的确定性,overhead同步,锁排队管理,类初始化以及最少的中断反应延迟。JAVA RTS仅仅针对于合适的操作系统,这就意味着只有诸如QNX这样的的实时操作系统才适合去实现一个这样的JVM。 *
……
【阅读全文】