Java en tiempo real es un término general para una combinación de tecnologías que permite a los programadores escribir programas que satisfagan 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 simplicidad relativa han creado una demanda para su uso en muchos dominios. Sus capacidades se han mejorado para soportar las necesidades computacionales en tiempo real:
- Java en tiempo real admite un modelo de subprocesamiento estrictamente basado en prioridades ,
- Debido a que los subprocesos de Java admiten prioridades, los mecanismos de bloqueo de Java admiten técnicas de evitación de inversión de prioridad , como la herencia de prioridad o el protocolo de límite de prioridad , y
- manejo de eventos.
La propuesta inicial para un estándar abierto para Java en tiempo real fue presentada por Kelvin Nilsen, quien luego se desempeñaba como miembro de la facultad de investigación en la Universidad Estatal de Iowa. En el MCCA se publicó un documento general de seguimiento . La respuesta abrumadoramente 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. En última instancia, 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, el NIST finalizó sus esfuerzos con la publicación de los requisitos de consenso que podrían ser considerados por los esfuerzos de estandarización futuros que albergará 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 VM) y al proporcionar áreas de memoria que no están sujetas a recolección de basura, junto con subprocesos que no son reemplazables por el recolector de basura. En cambio, estas áreas se administran mediante la administración de memoria basada en regiones . La última especificación, 2.0, admite el acceso directo a dispositivos y también la recolección de basura determinista.
Especificación en tiempo real para Java
La Especificación en tiempo real para Java (RTSJ) es un conjunto de interfaces y refinamientos de comportamiento que permiten la programación de computadoras en tiempo real en el lenguaje de programación Java . RTSJ 1.0 fue desarrollado como JSR 1 bajo el Proceso de la Comunidad Java , 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 . Puede encontrar más información en RTSJ 2.0
Ver también
- Especificacion funcional
- Javolution - Biblioteca Java compatible con RTSJ
Referencias
enlaces externos
- Problemas en el diseño e implementación de Java en tiempo real
- Adición de capacidades en tiempo real a Java
- Requisitos para las extensiones en tiempo real para la plataforma Java
- Especificación en tiempo real para Java 2.0 (RTSJ 2.0)
- JSR-282
- Especificación en tiempo real para Java (RTSJ)
- JSR-1
- IBM WebSphere Real Time, una máquina virtual RTSJ SE totalmente conforme
- JamaicaVM una implementación de RTSJ SE con recolección de basura determinista
- PTC Perc una máquina virtual en tiempo real basada en Java Standard Edition pero con una tecnología patentada de recolección de basura determinista en lugar de RTSJ
- Sistema en tiempo real Sun Java SE
- Apogee en tiempo real Java con GC en tiempo real (descontinuado)
- Kit de herramientas de implementación y prueba de Timesys RTSJ
- jRate (Java Real-Time Extension) una extensión de código abierto del sistema de tiempo de ejecución y front-end del compilador GNU GCJ que agrega soporte para la mayoría de las características requeridas por el RTSJ.
- Taller internacional sobre tecnologías Java para sistemas integrados y en tiempo real (JTRES 2005) JTRES 2006 JTRES 2007 JTRES 2008 JTRES 2009 JTRES 2010 JTRES 2011 JTRES 2012 JTRES 2013 JTRES 2014 JTRES 2015
- Código abierto en tiempo real basado en Java LJRT Lund
- Ovm
- Fiji VM Java en tiempo real
- VM Java en tiempo real