Java en tiempo real


Java en tiempo real es un término general para una combinación de tecnologías que permite a los programadores escribir programas que cumplan con las demandas de los sistemas en tiempo real en el lenguaje de programación Java .

La gestión de memoria sofisticada de Java , el soporte nativo para subprocesos y concurrencia, la seguridad de tipos y la relativa simplicidad han creado una demanda para su uso en muchos dominios. Sus capacidades se han mejorado para admitir necesidades computacionales en tiempo real:

La propuesta inicial de un estándar abierto para Java en tiempo real fue presentada por Kelvin Nilsen, que en ese entonces se desempeñaba como miembro de la facultad de investigación en la Universidad Estatal de Iowa. Se publicó un documento general de seguimiento en el CACM . La abrumadora respuesta positiva a estas primeras propuestas resultó en una serie de reuniones organizadas por el Instituto Nacional de Estándares y Tecnología en un esfuerzo por establecer un estándar abierto para Java en tiempo real. Finalmente, se le dijo al NIST que no era el organismo apropiado para establecer estándares relacionados con el lenguaje Java, ya que Java era una marca registrada y las tecnologías eran propiedad de Sun Microsystems. Por lo tanto, NIST finalizó sus esfuerzos con la publicación de requisitos de consenso .eso podría ser considerado por futuros esfuerzos de estandarización para ser alojado por Sun Microsystems.

Cuando se formó la comunidad Java , el primer esfuerzo fue la especificación para Java en tiempo real, JSR001. Han surgido varias implementaciones de la especificación en tiempo real resultante para Java ( RTSJ ), incluida una implementación de referencia de Timesys , WebSphere Real Time de IBM , Java SE Real-Time Systems de Sun Microsystems , [1] PTC Perc de PTC, Inc. , [2] o JamaicaVM de aicas .

El RTSJ abordó los problemas críticos al exigir una especificación mínima para el modelo de subprocesos (y permitir que otros modelos se conecten a la máquina virtual) y al proporcionar áreas de memoria que no están sujetas a recolección de elementos no utilizados, junto con subprocesos que no son reemplazables por el recolector de basura. En su lugar, estas áreas se administran mediante la administración de memoria basada en regiones . La especificación más reciente, 2.0, admite el acceso directo a dispositivos y también la recolección de basura determinista.

La especificación en tiempo real para Java (RTSJ) es un conjunto de interfaces y mejoras de comportamiento que permiten la programación de computadoras en tiempo real en el lenguaje de programación Java . RTSJ 1.0 se desarrolló como JSR 1 bajo el Java Community Process , que aprobó el nuevo estándar en noviembre de 2001. RTSJ 2.0 se está desarrollando bajo JSR 282. Una versión preliminar está disponible en JSR 282 JCP Page . Se puede encontrar más información en RTSJ 2.0