Download Introducción a los Sistemas de Tiempo Real
Document related concepts
no text concepts found
Transcript
Introducción a los Sistemas de Tiempo Real Sistemas de Tiempo p Real htt // http://www.vision.uji.es/~pla/ii75 i i ji / l /ii75 Í di Índice • Introducción. d ó – Ejemplos de Sistemas Empotrados. – Características de un Sistema de Tiempo Real. • Programación de Sistemas de Tiempo Real. – Lenguaje C. – Java – Ada – Sistemas operativos de Tiempo Real F. Pla - UJI 2 I t d Introducción ió • Un STR podría definirse como un sistema en el cual la respuesta a un estímulo generado externamente debe producirse dentro de un intervalo finito y especificado. • Consecuentemente, la garantía de un sistema de tiempo real no depende solamente del resultado lógico de la computación, sino también del tiempo transcurrido hasta que los resultados son producidos producidos. • Los sistemas de tiempo real suelen estar integrados en sistemas de ingeniería más general, en el que se realizan funciones de control y/o monitorización: Sistemas empotrados (Embedded (Embedded Systems) Systems) F. Pla - UJI 3 U sistema Un i t d de control t l de d fluido fl id Sistema de Control de Caudal Lectura del nivel Procesado Ángulo de salida Computador F. Pla - UJI Depósito 4 Sistema de control de procesos F. Pla - UJI 5 Sistema de control de producción F. Pla - UJI 6 Sistema de mando y control F. Pla - UJI 7 Ej Ejemplos l de d Sistemas Si t Empotrados E t d • Defensa: Bombas y misiles inteligentes, vehículos, di dirección ió de d tiro,... ti • Electrónica de consumo: Vídeos, Lavadoras, frigoríficos,.. • Automóviles: Control de velocidad,, climatización,, inyección,... • Aviónica, espacial: Computadoras de vuelo, Path Path-finder,... F. Pla - UJI 8 Características C t í ti de d un STR • Gran tamaño y complejidad – Algunos STR tienen millones de líneas de código. – La variedad de funciones incrementa la complejidad incluso en sistemas pequeños. • Concurrencia – Los elementos físicos funcionan simultáneamente. – Es necesario expresar la concurrencia en la estructura del programa. • Dispositivos de entrada/salida especiales – Los manejadores de dispositivos forman parte del software de la aplicación. F. Pla - UJI 9 Características C t í ti de d un STR • Seguridad y Fiabilidad – Aparece sistemas críticos: fallos con consecuencias graves. Ej una unidad de cuidados intensivos, una planta química, ... • Determinismo temporal – Acciones en intervalos de tiempo determinados. – Es fundamental que el comportamiento de un STR sea determinista. determinista • La predicción de la respuesta es fundamental en el diseño. • Manipulación de números reales – Capacidad para manipular números con coma flotante y reales (alto grado de precisión). F. Pla - UJI 10 Programación P ió de d Sistemas Si t en Tiempo Ti Real R l • Un lenguaje de programación de STR debe facilitar la realización de sistemas: – Concurrentes – Fiables – Comportamiento temporal analizable • Hay varias clases de lenguajes de interés para STR: – Lenguajes secuenciales (Fortran, Pascal, C, C++). • Necesitan un SO para concurrencia y tiempo real. – Lenguajes concurrentes (Modula(Modula-2, Ada, Java,...) • Concurrencia y tiempo real incluidos en el lenguaje F. Pla - UJI 11 Lenguaje L j C • Es un lenguaje muy utilizado en programación de sistemas. • Es un lenguaje: Muy fiable, fiable eficiente eficiente, estructurado estructurado, poco legible. • No N ti tiene iintegrada t d nii la l concurrencia i nii ell tiempo ti real. l – Se consigue invocando servicios del sistema operativo de forma explicita explicita. – No tiene programación orientada a objetos como C++ F. Pla - UJI 12 Java Java • Es un lenguaje pensado para construir sistemas distribuidos.. distribuidos – Basado en objetos dinámicos. – Con concurrencia integrada en el lenguaje – Biblioteca de clases (APIs). – Pensado para que el código se interpretado a través de una máquina virtual. • La L definición d fi i ió original i i l no es adecuada d d para tiempo ti reall – La medida de tiempo no es suficientemente precisa. – El gestor de memoria de java resulta a veces inapropiado inapropiado. – Los mecanismos de sincronización son inadecuados. F. Pla - UJI 13 Java Java • Hay varias propuestas de modificaciones para usar Java en STR. – NIST Requeriments for RealReal-Time Extensions to Java (1999). – Java Real Real--Time Expert Group (Sun, ...) • Real Real--Time Specification for Java (2000(2000-01) • Basada en una máquina virtual extendida para STR – Real Real--Time Java Working g Group p (J(J ( -Consortium). ) • Real Real--Time Core Specification (2000) • Basada en una máquina virtual separada para STR – Los L sistemas i t distribuidos di t ib id en Tiempo Ti Real R l tienen ti una gran interés. Sin embargo, el uso de Java en tiempo real todavía esta en desarrollo F. Pla - UJI 14 Ada Ad • Es un lenguaje diseñado específicamente para STR empotrados.. empotrados – Concurrencia y tiempo real. – Acceso al hardware e interrupciones. • Es un lenguaje g j descendiente del Pascal. – Estructurado y fuertemente tipado. • Está pensado para construir sistemas grandes y cambiantes. – Paquetes (modulos) y esquemas genéricos – Extensión de tipos con herencia – Biblioteca jerárquica – Interfaces normalizados con otros lenguajes (C, Fortran) F. Pla - UJI 15 Si t Sistemas Operativos O ti de d Tiempo Ti Real R l • Los sistemas operativos convencionales no son adecuados para realizar sistemas de tiempo real. – No tienen un comportamiento determinista. determinista. – No permiten garantizar los tiempos de respuesta. respuesta. • Un Sistema Operativo p de Tiempo p Real (SOTR) ( ) debe soportar – Concurrencia: Concurrencia: procesos ligeros (threads) con memoria común. común – Temporización Temporización:: medida de tiempos y ejecución periódica. – Planificación determinista – Dispositivos de E/S: E/S: acceso a recursos de hardware e interrupciones F. Pla - UJI 16 Si t Sistemas Operativos O ti de d Tiempo Ti Real R l • Existen numerosos SOTR: – http://www.csee.wvu.edu/~jdm/classes/cs258/OScat/rtime.html • LynxOS. LynxOS – Unix SOTR de LynuxWorks (“Lynx RealReal-Time Systems”) – http://www.lynuxworks.com http://www lynuxworks com • pSOS – Soporta Windows NT 4/2000 y UNIX UNIX--Solaris – http://www.windriver.com • VxWorks, V W k RTCore RTC (antes ( t RTLinuxRTLinux RTLi -Pro) P ) – SO en modo nucleo – http://www.windriver.com http://www windriver com F. Pla - UJI 17 Si t Sistemas Operativos O ti de d Tiempo Ti Real R l • QNX: – Sistema basado en arquitectura micronucleo – http http://www.qnx.com ://www.qnx.com • ThreadX ThreadX.. – SPTR para sistemas empotrados con threads – http://www.rtos.com • Windows CE – Windows de TR, compacto, para sistemas empotrados. – http://en.wikipedia.org/wiki/Windows_CE • RTLinux RTLinux--GPL http://www.rtlinux--gpl.org http://www.rtlinux • RTAI http://www.rtai.org – Compatibles con linux F. Pla - UJI 18