Download luqueroldan

Document related concepts
no text concepts found
Transcript
Trabajo de Investigación
Aplicación de Java y C++
en Sistemas de Tiempo Real Estricto
Sergio Roldán
Alfredo Luque
Junio de 2008
Publicación de base analizada
“Hard Real-Time: C++ vs. RTS-Java”
Daniel L. Dvorak and William K. Reinholtz
Jet Propulsion Laboratory, 2004
Sistemas en Tiempo Real Estricto
Requerimientos Generales


Planificación y Ejecución de Procesos
Atención de Eventos Asincrónicos
Precisión en Eventos Sincrónicos
Sincronización entre procesos
Manejo de recursos compartidos
Memoria Operativa
Dispositivos de Entrada-Salida
Acceso al Hardware en Bajo Nivel
Ejemplos de Aplicación


Controlador Industrial al nivel de un PLC
 Microprocesador: strongARM, Intel x86
 Sistema Operativo RTOS: QNX, RTAI-Linux
 Aplicaciones en C++ y/o en Java
 Interfase de usuario completa
Controlador embebido: ej: Sensor con Field-Bus
 Microcontrolador: Atmel AVR, PIC-16
 Sin RTOS: una sóla aplicación principal
 Sin interfase de usuario
Tabla Comparativa, en Sistemas con RTOS
Sistema con
RTOS
Ventajas
JAVA
C++
Facilidad de desarrollo
Velocidad de procesamiento
Portabilidad en sistemas
heterogéneos y/o distribuidos
Procesos POSIX.
Procesos POSIX.
Tiene soporte en la mayoría de los
RTOS
La maquina virtual afecta la
rapidez del sistema.
Desventajas
Deshabilitar el GC
La portabilidad de las aplicaciones
depende fuertemente del modo de
programación y de la disponibilidad
de compiladores.
Tabla Comparativa, en sistemas sin RTOS
Sistema sin
RTOS
Ventajas
Desventajas
JAVA
C++
Facilidad de desarrollo
Velocidad de procesamiento
Portabilidad en sistemas
heterogéneos y/o distribuidos
Control de bajo nivel sobre el
Hardware
La JVM permite manejar la
concurrencia de procesos
Manejo de memoria controlado por
la aplicación.
La JVM ocupa RAM y tiempo de
procesador generalmente muy
limitados
C++ no provee ningún Scheduler
nativo del lenguaje.
sin un GC, se hace difícil el
manejo de memoria
Desaparece el manejo de procesos
Referencias
1. “Hard Real-Time: C++ vs RTSJava” Dvorak-Reinholtz,
2004
2. “Real-Time Java” Mathias Johnson, 2002
3. “OS Platforms for RTSJ” Peter Dibble, 2005
4. “Java vs. C++ shootout – Benchmark” Lasse Kärkkäinen,
2008
http://zi.fi/shootout/
5. Referencias a RTOS:
http://en.wikipedia.org/wiki/Real-time_operating_system
6. Especificaciones de la RTS-Java:
http://www.rtsj.org