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