Story Transcript
SISTEMAS EN TIEMPO REAL
Manuel Agustín Ortiz López Área de Arquitectura y Tecnología de Computadores Departamento de Arquitectura de Computadores, Electrónica y Tecnología Electrónica Universidad de Córdoba
Introducción
Introducción a los Sistemas en Tiempo Real • Índice: 1. Introducción. Consideraciones previas. 2. Estructura de un sistema en tiempo real. 3. Tipos de tareas. 4. Clasificación de los sistemas en tiempo real. 5. Aplicaciones de los sistemas en tiempo real. 6. Breve historia de los sistemas en tiempo real
Sistemas en Tiempo Real Manuel Ortiz. Universidad de Córdoba
Página 1
Introducción
1. Introducción. Consideraciones previas. • Definición de sistema en tiempo real: " Un sistema en tiempo real debe producir unas salidas como respuesta a unas entradas dentro de unos límites de tiempo específicos" " Un sistema en tiempo real es aquel que debe producir respuestas correctas dentro de unos limites de tiempo". [Bennet,1993].
• Se plantean dos cuestiones: ¿ Qué significa limites de tiempo específicos? ¿ Por qué se dice "debe producir" y no dice "produce"? La respuesta a estas dos cuestiones solo se podrá tener cuando se considere una aplicación concreta: • No necesitamos el mismo tiempo de respuesta en unas aplicaciones que en otras. • No en todas las aplicaciones es necesario que el sistema responda siempre dentro de unos límites de tiempo concretos (ej. aplicaciones multimedia), mientras que en otras es crucial (piloto automático de un avión).
• ¿Qué diferencia existe entre un sistema informático cualquiera y un sistema informático en tiempo real? "Los sistemas informáticos en tiempo real son sistemas en los que la precisión del sistema no solo depende del resultado lógico de la computación sino que además depende del tiempo en el que el resultado se produjo ". [Bennet,1993] " Una respuesta tardía es una respuesta errónea".[ Bennet,1993].
Sistemas en Tiempo Real Manuel Ortiz. Universidad de Córdoba
Página 2
Introducción
• Consideraciones importantes en los sistemas en tiempo real (STR). Ejemplo: Conductor y su coche [Krihsna,97]. Conductor: Controlador. Coche: Proceso que controla el conductor ¿Cual será la finalidad del conductor? • Llevar el coche desde su origen al destino. • Sin colisionar con ningún otro objeto o vehículo. • Manteniendo los limites de velocidad. ¿Qué elementos debe controlar el conductor? • Las ruedas, el motor y los frenos ¿Sobre que elementos actúa el conductor? • Sobre todos aquellos elementos que intervienen en la conducción, especialmente: Volante, frenos, acelerador, etc. Rendimiento del sistema conductor-coche. Considerado el conductor y el coche como sistema, ¿Cómo podríamos cuantificar el rendimiento del conductor? Y por tanto ¿Cómo mediríamos las acciones del conductor dentro del entorno en el que opera? Una medida obvia es comprobar si el conductor ha llegado a su destino. Otra medida sería cuanto tiempo ha tardado. Sin embargo estas valoraciones dependen mucho de las condiciones donde el sistema opera. Un rendimiento muy bueno seria una velocidad de 20Km. por hora durante una nevada pero malísimo en un día soleado. Supongamos el peor caso: El sistema falla (es decir el conductor no llega a su destino porque se ha salido de la carretera). ¿Concluiríamos diciendo que el rendimiento del sistema es nulo?. Sin embargo esta afirmación no es correcta dependerá de qué fue lo
Sistemas en Tiempo Real Manuel Ortiz. Universidad de Córdoba
Página 3
Introducción
que produjo la salida de la carretera. No es lo mismo que se haya salido de la carretera por evitar una colisión de alguien que circulara en sentido contrario, que haberse salido de la carretera por un execso de velocidad al tomar una curva. En el primer caso contabilizaríamos la salida como un suceso mientras que en el segundo caso lo contabilizaríamos como un fallo. Por tanto el rendimiento no es una medida absoluta sino que depende de las circunstancias, y debería medirse el resultado obtenido respecto a todos los mejores resultados posibles. Tareas que realiza el conductor: Unas tareas son críticas para completar el objetivo y otras no. • El control de las ruedas y los frenos serían tares críticas, mientras que el apagar o encender la radio no serían tareas criticas. El control de las ruedas y los frenos son tareas de tiempo real, y deberían realizarse dentro de unos límites de tiempo específicos. Aún así el tiempo limite de finalización o tiempo máximo de realización (DEADLINE) de estas tareas depende del entorno. El tiempo máximo de control de las ruedas y los frenos no tienen por qué ser los mismos si se circula por una calle vacía que por esa misma calle cuando está colapsada por el tráfico Por ejemplo si necesito frenar no tengo por qué hacerlo con la misma rapidez si tengo un coche delante como si no lo tengo. Por tanto debemos concluir que los tiempos límite de finalización de tareas (DEADLINE) no son constantes sino que varían dependiendo del entorno. Especificación del sistema. Por otro lado supongamos que intentamos especificar de una forma precisa las responsabilidades del conductor.
Sistemas en Tiempo Real Manuel Ortiz. Universidad de Córdoba
Página 4
Introducción
La principal responsabilidad está clara: llegar sano y salvo al destino sin cometer infracciones de tráfico. Sin embargo especificar los detalles es bien distinto, ya que deberíamos especificar de forma precisa lo que el conductor debería hacer ante cualquier eventualidad. Las especificaciones formales y su validación son las tareas más dificultosas en los sistemas en tiempo real. En resumen: • El rendimiento no es una medida absoluta sino que depende de las circunstancias, y debería medirse el resultado obtenido respecto a todos los mejores resultados posibles. • Los tiempos límite de finalización de tareas (DEADLINE) no siempre son constantes sino que varían dependiendo del entorno. • Las especificaciones formales de lo que un sistema debe realizar y su validación son las tareas más dificultosas en los sistemas en tiempo real.
Sistemas en Tiempo Real Manuel Ortiz. Universidad de Córdoba
Página 5
Introducción
2. Estructura de un sistema en tiempo real. [Krishna,97]. • La estructura general de un sistema en tiempo real que controla un proceso cualquiera se muestra en la siguiente figura:
El estado del proceso bajo control y su entorno (presión, temperatura, velocidad, etc.) se adquiere mediante sensores, y se transmiten al controlador o computador a distinta velocidad dependiendo del parámetro
concreto que se quiere medir
(generalmente a velocidades inferiores a 1 Kbyte/s). En el sistema hay una serie de tareas (job list) que debe realizar el computador. El bloque "trigger generator " representa el mecanismo que arranca unas determinadas tareas. El resultado de la computación se traslada a los actuadores o bien al panel de control o pantallas de que disponga el operador. Las consignas a los actuadores suele hacerse también a una baja velocidad del orden de una consigna cada 25 ms. Todo control por computador presenta esta dicotomía por un lado los sensores y actuadores trabajan a baja velocidad mientras que el Sistemas en Tiempo Real Manuel Ortiz. Universidad de Córdoba
Página 6
Introducción
computador debe trabajar lo suficientemente rápido para realizar correctamente los algoritmos de control. En términos de velocidad de trabajo del computador en tiempo real podemos definir tres capas: Sensores y actuadores Periféricos Formatéo de datos Central de proceso
3. Tipos de tareas. [Krishna,97]. En el contexto de sistemas en tiempo real el conjunto de tareas que puede realizar un sistema se pueden clasificar de dos maneras distintas: 1. Atendiendo a la predicción del momento en que deben realizarse (momento de llegada) 2. Atendiendo a las consecuencias que tiene el que no se hayan realizado. Atendiendo al primer criterio se clasifican en: • Tareas periódicas y aperiódicas. Hay muchas tareas en un sistema que se realizan de forma periódica cada cierto tiempo. Por ejemplo en un avión se mide de forma periódica la altura, el estado de los alerones, etc. Este tipo de tareas son conocidas por el diseñador y deberían planificarse a priori.
Sistemas en Tiempo Real Manuel Ortiz. Universidad de Córdoba
Página 7
Introducción
Sin embargo hay otros tipos de tareas que solo ocurren ocasionalmente de forma aperiódica. Por ejemplo cuando el piloto de un avión modifica la dirección del vuelo. Estas tareas por su naturaleza no son predecibles y debe reservarse un tiempo
de
computación para ellas, de forma que puedan realizarse de forma satisfactoria. Las tareas aperiodicas que se realizan muy de tarde en tarde se llaman esporádicas. Atendiendo al segundo criterio se clasifican en: • Tareas críticas y no críticas. Las tareas de tiempo real se clasifican también de acuerdo a las consecuencias que tiene el que nos se hayan concluido a tiempo. Tareas críticas son aquellas en las que de sobrepasarse su tiempo máximo de ejecución (DEADLINE) ocurre alguna catástrofe. Las tareas no criticas son aquellas que se ocupan de una tarea no critica pero en las que debe tenerse como objetivo de que la mayoría se ejecuten dentro de su tiempo máximo. Por ejemplo en los sistemas multimedia la mayoría de las tareas no son críticas y sin embargo debe procurarse que se realicen dentro de su tiempo establecido.
Sistemas en Tiempo Real Manuel Ortiz. Universidad de Córdoba
Página 8
Introducción
4. Clasificación de los sistemas en tiempo real. • Los sistemas en tiempo real se clasifican de acuerdo a los requisitos temporales: Hard real-time Son sistemas en los que es absolutamente imperativo que las tareas (respuestas del sistema) concluyan dentro de su limite de tiempo de ejecución (DEADLINE). Sistemas de este tipo son por ejemplo un avión, una central nuclear, etc. Soft real-time Son sistemas en los que es admisible que una tarea supere su tiempo máximo de ejecución, y por tanto el sistema seguirá funcionado. Sistemas de este tipo son los sistemas multimedia, los sistemas de adquisición de datos. Los sistemas reales serán una mezcla de ambos sistemas, ya que un mismo sistema constará de tareas críticas y no críticas.
Sistemas en Tiempo Real Manuel Ortiz. Universidad de Córdoba
Página 9
Introducción
5. Aplicaciones de los sistemas en tiempo real. • Son numerosas las aplicaciones donde se utilizan sistemas en tiempo real: • Sistemas de defensa
• Sistemas de telecomunicaciones
• Sistemas de Radar
• Sistemas de satélites
• Control de procesos
• Sistemas de control en vehículos
• Aviónica
• Sistemas de Navegación autónoma
• Control de tráfico aéreo • Sistemas de telecomunicaciones • Servidores multimedia
• Sistemas de procesamiento de señal
• Sistemas de control y adquisición de datos • Sistemas de control de centrales nucleares • Etc..
• Un grupo importante de sistemas en tiempo real son los sistemas empotrados (Embedded systems). Son sistemas diseñados para una aplicación específica. Por ejemplo un teléfono móvil, el control del abs en un coche, etc. Sin embargo un ordenador personal no sería un sistema empotrado ya que no se ha concebido para que realice una aplicación concreta. Por tanto la afirmación de que todo sistema empotrado es un sistema en tiempo real es cierta, mientras que la afirmación contraria no lo es.
Sistemas en Tiempo Real Manuel Ortiz. Universidad de Córdoba
Página 10
Introducción
6. Breve historia de los sistemas en tiempo real. [Laplante,97]
Año Sistema
Compañía Sistema
Innovación
1947 Whirlwind
MIT/
Simulador
Memoria de ferrita
U.S. Navy
de vuelo
Tiempo de respuesta real
IBM
Defensa
Diseñado
aérea
como sistema en tiempo real
Navegación
Primer sistema de navegación
1957 SAGE
1957 Cytac
Varios
específicamente
en tiempo real 1957 Stretch
1958 Scientific 1103A
IBM
Univac
Propósito
Equipo
completamente
general
realizado con transistores
Propósito
Primer
general
interrupciones por hardware
equipo
con
(interrupciones asíncronas) 1959 SABRE
IBM
Reserva aérea
1962 Basic Executive
IBM
Propósito
Primer
general
administrador de tareas en
equipo
con
un
tiempo real 1963 Basic Executive II IBM
Propósito
Poseía
diversos
general
planificadores en tiempo real
1970 Llegada del microprocesador. Se utiliza por primera vez el término "tiempo real" en el control digital de procesos
Sistemas en Tiempo Real Manuel Ortiz. Universidad de Córdoba
Página 11