Cap1.pdf
Document Details
Uploaded by Deleted User
Tags
Full Transcript
Capítulo 1 Introducción a los Sistemas de Tiempo Real Ing. J. Marcelo Arancibia Rodríguez Introducción “STR” Sistemas de Tiempo Real Estímulos Externos...
Capítulo 1 Introducción a los Sistemas de Tiempo Real Ing. J. Marcelo Arancibia Rodríguez Introducción “STR” Sistemas de Tiempo Real Estímulos Externos Sistema en el que el Interactúan con el Entorno Control tiempo en el que se de produce la salida es Eventos significativo. Ejecutan Acciones Tiempo Específico Definición “STR” Las aplicaciones de tiempo real son las aplicaciones informáticas en las que la obtención de los resultados está sujeta a unas restricciones temporales impuestas por el entorno en que se ejecutan. Los sistemas que soportan la ejecución de aplicaciones de tiempo real y aseguran el cumplimiento de los requerimientos temporales se denominan sistemas de tiempo real. “Definen como sistemas informáticos que tienen la capacidad de interactuar rápidamente con su entorno físico, el cual puede realizar funciones de supervisión o control para su mismo beneficio”. Definición “STR” Sistemas de Tiempo Real Es Sistema Informático Tiempo Acciones Esto es debido a que el sistema está conectado a un proceso externo del que se recibe estímulos a los que debe responder con suficiente rapidez para evitar que evolucione a un estado indeseable. No se debe confundir este comportamiento con que la salida depende del tiempo en que se produce la entrada: S = f (E, t) Aplicaciones “STR” Control de procesos industriales: Conseguir que un variable siga una evolución determinada (temperatura, caudal, presión, etc.) La misión del computador es generar las señales que permiten conseguir el objetivo, a partir de la medida de la variable a controlar, del valor especificado para ésta y de un determinado algoritmo de control. Manufactura: control sobre los procesos de fabricación, con el objetivo de reducción de costes y/o aseguramiento de la calidad. El computador se encarga de coordinar las tareas a realizar por los distintos componentes del sistema como son, las máquinas herramientas, las cintas transportadoras, etc. Comunicación, mando y control: recopilación y mantenimiento de información como ayuda a la toma de decisiones (reserva de billetes, monitorización de pacientes, control de trafico aéreo, etc..). Ejemplos de los “STR” Algunos ejemplos de aplicaciones de sistemas de tiempo real son: · Sistemas de aviónica, tecnología espacial y armamentista. · Sistemas de control de procesos. · Sistemas de seguridad. · Equipos en hospitales. · Sistemas de robótica. · Sistemas de fabricación. · Sistemas de control de comunicaciones. · Sistemas multimedia. Vídeo conferencia, reproducción audiovisual. · Sistemas de reconocimiento. Características “STR” Unas características importantes de los sistemas en tiempo real son: - Determinismo: Conocer exactamente como se comporta el entorno del sistema. Tener seguridad que no van a aparecer situaciones a las que el sistema no pueda responder adecuadamente. - Comportamiento predecible: Saber como se comporta el sistema de manera que no pueda aparecer ninguna situación que altere el comportamiento temporal Características “STR” Algunas características de los sistemas informáticos que se suelen utilizar y que los hacen inadecuados para el tiempo real por hacerlos no predecibles son: - Memoria caché y pipe-line: Una misma instrucción de código máquina puede ejecutarse en más o menos tiempo según la historia del programa. - Interrupciones no controladas: El tratamiento de las interrupciones puede introducir una sobrecarga excesiva que puedan impedir que un programa finalice en el tiempo adecuado. - Memoria virtual: La paginación de memoria en disco introduce retardos en los procesos que pueden retardar en exceso su activación. - Protocolos de comunicación no deterministas: Colisiones, reenvíos, etc. En el caso de un sistema distribuido los tiempos consumidos en el paso de información debe estar acotado. Características “STR” Hay que distinguir entre sistemas de tiempo real y sistemas rápidos. Por ejemplo, un sistema UNIX no es de tiempo real por ejecutarse en una máquina muy rápida pues utiliza mecanismos que no son predecibles. En los sistemas de tiempo real existen otras características comunes que conviene destacar: Concurrencia: En general, un mismo sistema ha de responder a distintos estímulos realizando distintos procesos ligados entre si o independientes. Se deben realizar procesos de control concurrentes, por lo que es necesario disponer de herramientas que permitan programación concurrente. Mantenimiento: Un problema importante en los sistemas de tiempo real es la labor de mantenimiento. Cualquier cambio requiere una nueva verificación detallada para asegurar la validez del comportamiento tanto funcional como temporal, pues la modificación de un determinado proceso puede afectar al comportamiento temporal del resto. Propiedades “STR” Existen unas propiedades que permiten distinguir los sistemas de tiempo real de los que no lo son. La forma de ejecutar las tareas concurrentes en los sistemas de tiempo real debe asegurar que se cumplen algunas propiedades, distintas de las que se exigen en otros tipos de sistemas, como podrían ser los sistemas de tiempo compartido. Propiedades “STR” Veamos en un cuadro comparativo de estas propiedades respecto a unos factores: Propiedades “STR” Garantía de plazos: un sistema de tiempo real funciona correctamente cuando los plazos de todas las tareas están garantizados, es decir, todas las tareas ejecutan su actividad dentro de plazo cada vez que se activan. En un sistema de tiempo compartido lo más importante es asegurar un flujo (número de activaciones por segundo) lo más elevado posible. Tiempo de respuesta máximo: en un sistema de tiempo real se trata de acotar el tiempo de respuesta en el peor de los casos de todas las tareas. En un sistema de tiempo compartido, se trata de conseguir que el tiempo de respuesta medio sea lo más corto posible. Estabilidad: Si a causa de una sobrecarga del sistema no se pueden ejecutar todas las tareas dentro de plazo, se debe garantizar que, al menos, un subconjunto de tareas críticas cumpla los plazos. En un sistema de tiempo compartido, el criterio es asegurar la equidad en la ejecución de las tareas (por ejemplo, que ninguna se vea postergada indefinidamente). Clasificación “STR” Existen distintas clasificaciones de sistemas de tiempo real de acuerdo a distintos criterios: Duros: en los que los cálculos siempre de deben terminarse en un tiempo máximo especificado (Restricción más severa). Blandos: en los que el sistema debe tener un tiempo promedio de ejecución inferior a un máximo especificado (Variación de Tiempo). Firmes: Incluye sistemas de tiempo real duros en los que se pueden tolerar pérdidas, si es que existe una posibilidad baja de que estas ocurran Clasificación “STR” Otros criterios de clasificación: Atendiendo a la arquitectura hardware utilizada Propietarios: Desarrollados para un hardware específico y con un desarrollo particular para cada aplicación. Abiertos: Basados en sistemas abiertos, incorporando estándares industriales, microprocesadores estándar, sistemas operativos estándar, protocolos de comuncaciones estándar y buses estándar. Atendiendo a la arquitectura del sistema Centralizados: Los procesadores están localizados en un único nodo del sistema y la velocidad de comunicación entre procesadores es semejante a la velocidad del procesador. Distribuidos: Los procesadores están situados en distintos puntos del sistema y la velocidad de comunicación entre procesadores es muy baja respecto a su velocidad de proceso. Justificación Los sistemas informáticos en tiempo real presentan características que los distinguen de los sistemas informáticos convencionales, pues en estos el tiempo juega un papel esencial. Ocurre que existe gran cantidad de aplicaciones del mundo real en la que se necesitan estos tipos de sistemas, por lo que merecen una atención especial. Necesidades de los sistemas de tiempo real“STR” Existen varios asuntos que son esenciales en los sistemas de tiempo real y que conciernen al diseño y desarrollo de este tipo de sistemas. Estos se pueden clasificar en los siguientes grupos: a) Especificación, análisis y verificación de los sistemas de tiempo real. b) Programación de los sistemas de tiempo real. c) Sistemas operativos de tiempo real d) Arquitecturas para tiempo real e) Comunicaciones en tiempo real a) Especificación, análisis y verificación “STR” El mayor problema en la especificación, análisis y verificación de los sistemas en tiempo real es como incluir las restricciones temporales en las especificaciones, y como verificar que el sistema cumple estas restricciones según la especificación. Los métodos tradicionales para la especificación y análisis de sistemas informáticos, tales como las máquinas de estados finitos, etc. no son aplicables directamente a los sistemas de tiempo real. No queda claro como se pueden extender estas técnicas para que incluyan las restricciones temporales. Necesidad de una Adaptación b) Programación de los sistemas de tiempo real “STR” La característica que más distingue a la programación en tiempo real surge de la necesidad de manejar el tiempo en todos los aspectos de la aplicación: especificación, diseño, desarrollo, prueba, verificación y ejecución. Se han añadido características nuevas a los lenguajes para permitir la expresión de los requerimientos temporales en una tarea individual. Se necesitan nuevas técnicas y planteamientos para verificar que los programas cumplen correctamente sus propiedades temporales. c) Sistemas operativos de tiempo real “STR” Un sistema operativo de tiempo real dispone de un planificador de procesos que tiene mecanismos para hacer lo máximo posible para garantizar que sus procesos de tiempo real cumplan los plazos de finalización que tienen establecidos. Los elementos fundamentales en los sistemas operativos de tiempo real son: El planificador de tiempo real. El kernel de tiempo real. d) Arquitecturas para tiempo real “STR” Las arquitecturas de los sistemas que han de soportar aplicaciones de tiempo real deben estar diseñadas para soportar las siguientes características críticas: Gran velocidad de cálculo Alta velocidad en la atención a interrupciones Alto flujo de entrada / salida. De forma adicional, es conveniente incorporar al sistema características de tolerancia a fallos que permita la operación continua en el caso de producirse un estado anormal en el sistema o el fallo de algún componente hardware. d) Arquitecturas para tiempo real “STR” Sistema en Tiempo Real. Arqutecturas homogeneas o heterogeneas. Redes de area local, y topologias de red. Otras Protocolos de comunicaciones:Ethernet, Token Ring Comunicaciones Computadoras Modelo OSI. Redes FFDI, X-25, ATM. E/S Software de Tiempo-Real Digital Microcontroladores y sistemas embebidos. DSP’s, PLC’s. Buses de multiprocesadores:VMEBUs,Multibus,FutureBus Arquitecturas RISC, Transputers. Reloj Uniprocesadores, Multiprocesadores. Memorias chache, DMA’s. E/S Analógico Computadora (HW) Medio Otras Ambiente E/S e) Comunicaciones en tiempo real “STR” En los sistemas sin características de tiempo real, es suficiente verificar la validez lógica para disponer de una comunicación válida, mientras que en los sistemas de tiempo real, es necesario también verificar la validez temporal en la transmisión de la información. Uso de protocolos de comunicación Ofrecer comportamiento determinista al sistema Aspectos Particulares de los “STR” Sistemas Empotrados Sistemas Empotrados Desde un punto de vista del entorno Una característica de los sistemas empotrados es que ellos desempeñan el control de un entorno determinado en el que no es necesario el desarrollo de nuevos programas en el propio entorno. Los requerimientos de proceso no cambian en su entorno y están bien definidos dentro del entorno de trabajo. Aunque algunos sistemas empotrados se diseñan para manejar información transitoria, los requerimientos de proceso para esta información transitoria esta predefinida. Sistemas Empotrados Desde un punto de vista de la funcionalidad Los sistemas empotrados se pueden denominar también sistemas dedicados. Estos sistemas son desarrollados para satisfacer una necesidad concretamente definida en un momento dado. Los limites de la operatividad del sistema son conocidos y pueden desempeñar la función para la que han sido diseñados durante años o décadas. De cualquier modo es importante que puedan funcionar durante un largo periodo de tiempo. Aspectos Particulares de los “STR” Tolerancia a Fallos Si se quiere construir un sistema de tiempo real estricto donde las consecuencias de una demora en la respuesta a un estímulo sea grave, no se puede olvidar la posibilidad de que un fallo en el sistema lo deje inoperativo y, por tanto, se alcance el tiempo límite de reacción sin que esta se produzca. Si bien la tolerancia a fallos es un problema al que es complicado dar solución, se complica mucho más si, además, se han de tener en cuenta restricciones temporales, sobre todo si tenemos en cuenta que muchas veces, la recuperación de un fallo se consigue basándose en una demora en el proceso de cálculo (técnica de recuperación y vuelta a atrás). Ejemplos de los “STR” Los ordenes del tiempo que se manejan depende mucho del tipo de aplicación. Algunos ejemplos son: La clasificación de un sistema en una de las categorías de tiempo real no reside en el orden de magnitud de los tiempos que se manejan sino en la importancia del cumplimiento de las restricciones temporales.