Índice Introducción a los Sistemas de Tiempo Real Tema 4 Carlos J. Escudero Cascón ¿Qué es un Sistema de Tiempo Real? Sistemas empotrados Características Planificación Clasificación Ejemplos Sistemas de Tiempo Real ¿Qué es un Sistema de Tiempo real? (I) ¿Qué es un Sistema de Tiempo real? (y II) Cualquier Sistema en el que el instante en el que se produce la salida es significativo. Esto suele deberse a que la entrada se corresponde a algún movimiento en el mundo físico y la salida tiene que estar relacionada con ese mismo movimiento. Para una puntualidad aceptable el lapso entre la entrada y la salida debe ser lo suficientemente pequeño (Oxford Dictionary of Computing) Interacciona repetidamente con su entorno físico Responde a los estímulos que recibe del mismo dentro de un plazo de tiempo determinado usuario introduce un comando y espera una respuesta rápida No es crítico si la respuesta no se recibe inmediatamente No dar una respuesta “a tiempo” no se considera como errónea En Sistemas de Tiempo Real La Para que el funcionamiento del sistema sea correcto no basta con que las acciones sean correctas, sino que tienen que ejecutarse dentro del intervalo de tiempo especificado exactitud del resultado depende: Resultados lógicos computación Instante de producción de los resultados No vale una respuesta fuera de tiempo aunque sea correcta El tiempo en que se ejecutan las acciones del sistema es significativo Sistemas de Tiempo Real En muchos sistemas: El Un sistema de tiempo real es un sistema informático que Incluso puede ser indeseable 3 Sistemas de Tiempo Real Sistemas Empotrados (I) específicas, pre-definidas limitados (memoria, potencia) La aplicación se ejecuta desde ROM Recursos Automóviles Electrónica de consumo: teléfonos, radios, televisores Electrodomésticos Periféricos de computador Existen... Los Sistemas Embebidos estan en el 90% de los dispositivos electrónicos y de cómputo en todo el mundo Existen mas sistemas embebidos que computadoras (>10) A menudo, el computador no es visible desde fuera Los recursos son limitados Sistemas de Tiempo Real Sistemas de cómputo basados en microprocesadores Funciones Características 4 Sistemas Empotrados (II) El objetivo no es el procesado de información, pero requieren esto para el desarrollo de su tarea principal. Muchos sistemas de tiempo real son componentes de otros sistemas, en los que realizan funciones de control Sistemas empotrados (embebidos) Ejemplos 2 5 Sistemas de Tiempo Real 6 1 Sistemas Empotrados (III) Sistemas Empotrados (y IV) Sistema de oficina y equipos móviles Sistemas en Edificios Fabricacion y control de procesos Máquinas contestadoras Copiadoras Faxes Laptops y notebooks Teléfonos móviles PDAs, Organizadores personales Still and video cameras Sistemas de Telefonía Impresoras Hornos de Microondas Aire acondicionado Respaldo y generadores de luz Administración de edificios Televisión por cable Controladores de Fuego Calefacción y Ventilación Elevadores, Escaleras Iluminación Seguridad Cámaras de Seguridad Extintores Fábricas automatizadas Plantas embotelladoras Sist. control de energía Plantas de manufactura Estaciones nucleares Refinerías de petróleos Sistemas de energía Robots Sistemas de switching Sist. Agua y alcantarillado Transporte Comunicaciones Otros equipos Aviones Trenes Autobuses Barcos Muelles Automóviles Cntr. de tráfico aéreo Sist. de señalización Radares Luces de Trafico Máquinas de boletos Detects. de velocidad Telefonía Cable Estaciones base Centrales Satélites Posicionamiento Global Puntos acceso Máquinas contestadoras Sist. tarjetas de crédito Equipos de imágenes médicas Ctrl. de calefacción domestica VCRs DVDs 7 Sistemas de Tiempo Real Sistemas de Tiempo Real Características (I) Características (II) Gran tamaño y complejidad Algunos STR tienen millones de líneas de código La variedad de funciones aumenta la complejidad Seguridad y fiabilidad Determinismo temporal Simultaneidad de acciones (concurrencia) Los dispositivos físicos controlados funcionan al mismo tiempo Los componentes de software que los controlan actúan concurrentemente Sistemas críticos: fallos con consecuencias graves incluso en sistemas relativamente pequeños Dispositivos de entrada y salida especiales manejadores de dispositivos forman parte del software de aplicación No se controlan por el S.O. Pérdida de vidas humanas, pérdidas económicas, daños medioambientales Acciones en intervalos de tiempo determinados Fundamental que el comportamiento temporal de los STR sea determinista Los No hay que confundirlo con la necesidad de que sea eficiente y/o rápido El sistema debe responder correctamente en todas las situaciones Hay que prever el comportamiento en el peor caso posible Todo ello requiere un gran conocimiento de las características de la aplicación y del entorno del sistema Software para sistemas de tiempo real es necesario utilizar métodos y herramientas especiales: Lenguajes de programación: C, Ada, C++. Java RT, Ocamm Sistemas operativos: VxWorks, normas POSIX para tiempo real, LynxOS 9 Sistemas de Tiempo Real Sistemas de Tiempo Real Planificación (I) Decidir que función está realizando el sistema en cada instante de tiempo Tarea (thread): cada uno de los módulos software que se pueden invocar para realizar una función concreta Todos los procesos comparten adecuadamente el recurso Si existe algún grado de contención en el sistema: Mínima Diseño - quien obtiene que prioridades, y cuando Cómo se asigna el acceso a los recursos compartidos Problemas de concurrencia Sistemas de Tiempo Real 10 Planificación (II) Un conjunto de procesos requieren el acceso a un recurso compartido: Procesador, medio de comunicación, dispositivos. Si no existe contención suficiente: 8 11 unidad de planificación de un sistema Algoritmo de planificación: conjunto de reglas que determinan qué tarea se debe ejecutar en cada instante Sistemas de Tiempo Real 12 2 Planificación (y III) Clasificación: tiempo de servicio y plazo (I) Instantes que determinan una tarea: o invocación: instante en el que ocurre el evento antes del cual la tarea no podría ejecutarse y a partir del cual, la tarea ya está preparada para su ejecución Plazo: instante llegado el cual la tarea debe haber completado su computación Todas las acciones deben ocurrir dentro del plazo especificado Tardanza cero o negativa En caso contrario resultados catastróficos Se pueden perder plazos de vez en cuando El valor de la respuesta decrece con el tiempo Tiempo de servicio: intervalo de tiempo transcurrido entre su invocación y el final de su respuesta Tardanza: retardo producido desde su plazo hasta el final de su respuesta Ejemplo: GPS Tiempo real firme (firm real-time) Se pueden perder plazos ocasionalmente Una respuesta tardía no tiene valor Ejemplo: control de vuelo, UCI, central nuclear Tiempo real flexible (soft real-time) Análisis del comportamiento de tareas: Sistemas de Tiempo Real Tiempo real estricto (hard real-time) Activación Ejemplo: sistemas multimedia (pérdida de tramas de audio y/o vídeo) En un mismo sistema puede haber componentes con distintos tipos de requisitos temporales 13 Clasificación: forma de invocación (y II) Pruebas (I) Tarea periódica Se invoca y ejecuta repetidamente a intervalos constantes, a partir de la invocación inicial Tarea esporádica Se invoca y ejecuta repetidamente a intervalos no constantes, aunque se puede determinar una separación mínima entre invocaciones consecutivas Tarea aperiódica Se invoca y ejecuta a intervalos irregulares Invocaciones en instantes arbitrarios En un mismo sistema puede haber tareas con diferentes formas de invocación Sistemas de Tiempo Real La mayoría de los errores en los STR se deben a imprevistas iteracciones entre procesos Los errores dependen de un instante concreto y se manifiestan en estados poco habituales Los métodos de diseño adecuados hay que combinarlos con estrategias de prueba Se deben de estudiar todos los caminos que llevan a los errores detectados No sólo hay que probar el funcionamiento en el entorno correcto. Un comportamiento incorrecto del entorno puede producir un error Un simulador es un programa que imita las acciones de un sistema en el que se ha instalado software de tiempo real. Es un entorno de pruebas 15 Ejemplos (I) Un simulador permite recrear un comportamiento normal o anormal del sistema Algunos estados de error de un sistema sólo se pueden probar mediante un simulador p.e. la fusión del núcleo de un reactor nuclear Los simuladores permiten repetir algunos experimentos que en la realidad no se podría Los simuladores son capaces de reproducir con precisión toda la secuencia de posibles eventos de un sistema En aplicaciones complejas puede que se necesite el uso de un multiprocesador o de uno que no se pueda construir fácilmente El desarrollo de un simulador no es evidente Después del simulador se realizará un prototipo 16 Sistemas de Tiempo Real Pruebas (y II) 14 Sistemas de Tiempo Real Tarea !1 T C P U 16 4 1 0.250 !2 40 5 2 0.125 !3 80 32 3 0.400 T: Periodo de ejecución C: Tiempo de Computo P: Prioridad 0.775 !1 !2 !3 Simuladores de lanzaderas espaciales más caros que el propio sistema Sistemas de Tiempo Real 17 Sistemas de Tiempo Real 18 3 Ejemplos (II) Ejemplos (III) 76 Actividades en un ordenador de un automóvil. ve loc ida d Ejemplos (IV) Tarea T C A 25 10 B 25 8 C 50 5 D 50 4 E 100 2 ¾ ¾ El ciclo principal dura 100 ms Se compone de 4 ciclos secundarios de 25 ms cada uno TS = 25ms 0 B C A 25 B D E A B ad e lo V le-2 ustib comb velocidad 24 40 Sistemas de Tiempo Real 20 Ejemplos (V) TM = 100ms A 20 c id 3 fren ado 44 19 1 le - 54 C=tiempo de computo (peor caso), T=Periodo de ejecucion, D=Plazo de respuesta Sistemas de Tiempo Real le - s tib C=10ms. Otro software T=40ms. no-critico * implica descomponer actividades grandes en varias ejecuciones. bu Control de combustible 14 tib com C=40ms. T=80ms. D=80ms. fren ado us Control de Frenado 64 mb Control de Velocidad C=10ms. T=40ms. D=40ms. 0 4 velocid ad no critico co C=4ms. T=20ms. D=5ms. -2 tible bus com C 50 A B 75 Sistemas de Tiempo Real D 100 21 procedure Cyclic_Executive is type Cycle is mod 4; Frame ; Cycle : = 0; begin loop Wait_for_Interrupt; case Frame is when 0 => A; B; C; when 1 => A; B; D; E; when 2 => A; B; C; when 3 => A; B; D; end case; Frame : = Frame + 1; end loop; end Cyclic_Executive; Sistemas de Tiempo Real 22 Ejemplos (y VI) La solución concurrente es más simple de diseñar y modificar. task body speed is begin loop speed_measurement; next:=next+0.2 sleep_until_next; end loop end speed task body fuel is begin loop fuel_injection; next:=next+0.2 sleep_until_next; end loop end speed task body brake is begin loop control_brakes; next:=next+0.2 sleep_until_next; end loop end speed task body non_critical is begin loop perform computation; end loop end speed Sistemas de Tiempo Real 23 4