Elementos de un sistema en tiempo real. tarea tarea tarea S.OP
Comunicaciones Software de Tiempo-Real Medio Ambiente E/S Digital
E/S Analógico Otras E/S Reloj Otras Computadoras
Computadora
Arquitecturas de Tiempo Real Comunicaciones Software de
Tiempo-Real Medio Ambiente E/S Digital E/S Analógico Otras
E/S Reloj Otras Computadoras Computadora (HW) Microcontroladores
y sistemas embebidos. DSP’s, PLC’s. Buses de
multiprocesadores:VMEBUs,Multibus,FutureBus Arquitecturas RISC,
Transputers. Uniprocesadores, Multiprocesadores. Memorias chache,
DMA’s. Sistema en Tiiempo Real Distribuido. Arqutecturas
homogeneas o heterogeneas. Redes de area local, y topologias de
red. Protocolos de comunicaciones:Ethernet, Token Ring Modelo
OSI. Redes FFDI, X-25, ATM.
HW y SW para Manejo de Tiempo Real HW. Reloj. Procesador de
Interrupciones. Timers. Watchdog. Procesador de comunicaciones.
SW. Retrasos de procesos: absolutos y relativos. Calendarios.
Timeouts. Clock package en ADA Especificación de tiempos:
Caracterización. Chequeo de tiempos para tolerancia a
fallos
Arquitecturas de Tiempo Real El diseno de arquitecturas de tiempo
real involucra 2 aspectos: Nivel de Nodo: cada procesador debe
proveer velocidad y predecibilidad en la ejecucion de tareas de
tiempo real, manejo de interrupciones, e interaccion con el mundo
externo. Nivel de Sistema. en este nivel las comunicaciones y la
tolerancia a fallos son 2 aspectos que hacen dificil la
predecibilidad. De cualquier manera, espectos aspectos son
inevitables.
Ejemplo de un sistema en tiempo real. Actividades en una
computadora de automobil. Control de Velocidad Control de
combustible Control de Frenado Otro software no-critico C=4ms.
T=20ms. D=5ms. C=10ms. T=40ms. D=40ms. C=40ms. T=80ms. D=80ms.
C=10ms. T=40ms. C=tiempo de computo (peor caso), T=Periodo de
ejecucion, D=Plazo de respuesta
Solucion Ciclica. velocidad frenado com busti ble-1 vel.
combustible-2 velocidad frenado com busti ble-3 vel.
combustible-2 no critico 0 4 14 20 24 40 44 54 60 64 76 * implica
descomponer actividades grandes en varias ejecuciones.
Solucion Concurrente. task body speed is begin loop
speed_measurement; next:=next+0.2 sleep_until_next; end loop end
speed task body non_critical is begin loop perform computation;
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
fuel is begin loop fuel_injection; next:=next+0.2
sleep_until_next; end loop end speed La solucion concurrente es
mas simple de disenar y modificar.
Aplicaciones de los Sistemas de Tiempo Real Dominio Industrial
Controlador de la planta Robot para tratamiento de material
peligroso Uso militar Sistema de reconocimiento de blancos
automático Sistema de guiado de misiles y
navegación Sistemas altamente críticos Plantas
nucleares Sistemas de aviónica
Aplicación Interfase Tubería Válvula Tiempo
Computadora Lectura del flujo de entrada Salida de la
válvula Procesamiento Un Sistema de control de fluido
simple Medidor de Flujo
Aplicación Computadora de control de producción
Producto Terminado Un sistema de control de producción
Partes Operador de consola Manipuladores Máquina de
Herramientas Cinta transportadora
T S P ADC ADC DAC Pantalla Switch Termoacoplador Calentador
Transductor de Presion Valvula de Bombeo El objetivo es mantener
la temperatura y la presion de un proceso quimico dentro de unos
limites predefinidos Sistema de Computo Embebido
Manipuladores Máquina de Herramientas Cinta transportadora
Cinta transportadora Máquina de Herramientas Manipuladores
Computo Computo Computo Computo Computo Computo Red de Area Local
Sistema de computo embebido de control de produccion
Sistema distribuido en tiempo real
Dificultades en el diseño Diseño de la
aplicación en tiempo real. Control de la concurrencia de
procesos. Selección de la arquitectura de hardware que
mejor responda a la aplicación. Obtención de
tiempos: Caracterización especificar los tiempos a los que
las acciones deben llevarse a cabo. especificar en cuanto tiempo
debe completarse cada acción. responder a situaciones en
las cuales no todos los tiempos se cumplen responder a
situaciones en las que los requisitos de tiempos cambian
dinámicamente.
Consideraciones de Diseño A quien afecta la
introducción de Tiempo Real ?. A los lenguajes,
compiladores. Al sistema operativo. A la arquitectura de
hardware. A la metodología de diseño. A la
arquitectura del sistema (HW/SW/Ambiente).
Sistemas Operativos de Tiempo Real Estructura del sistema
operativo. Modelos de tareas, estados de las tareas, servicios y
transiciones. Procesos y threads. Cambio de contexto. Algoritmos
de Planificacion: Ciclica, RMS, EDF. Inversion de prioridad y
protocolo de techo de prioridad. Tareas aperiodicas y Servidor
esporadico. Sincronizacion de procesos. Comunicación entre
procesos. Relojes y timers. Memoria compartida, locking, reserva.
E/S sincrona y asincrona. Transacciones en tiempo real y manejo
de archivos. Manejo de interrupciones y device drivers.
Bases de datos en tiempo real Uno de los principales problemas
con las bases de datos es su naturaleza inpredecible sobre sus
tiempos de respuesta. Esta inpredecibilidad es debida a: la
naturaleza de los querys. accesos a disco. contension de
recursos. la inabilidad de conocer cuantos objetos debe accesar
un query y cuanto tiempo le tomara. Restricciones importantes:
planificacion de transacciones que cumplan plazos de respuesta.
semantica explicita que permita especificar manejo de
transacciones con tiempos. chequeo del sistema de base de datos
de cumplir con requerimientos de tiempos en sus
transacciones.
Comunicaciones en tiempo real: Formulacion del problema A
conjunto de mensajes generados desde un nodo fuente hacia un nodo
destino y conectados a traves de una red de topologia
single/multihop Los mensajes deben de cumplir las restricciones
de TR:end-to-end-scheduling Deadline, Periodicidad, Modo,
Guarantee type, TR Hard/Soft,… user user user user
Planificacion de mensajes La planificacion de mensajes difiere de
la planificacion del CPU en que Retrasos en cadena, o
implicaciones del bufer de la cadena(efecto de la red) No siempre
existe la nocion de listo para ejecucion. Se depende
temporalmente de otros sitios Los mensajes arrivan de algun nodo
especifico Los mensajes no siepre estan disponibles. Retrasos
inpredecibles en el envio de mensajes. Dificultad en el control
de acceso a la red. Pseudo Pre-emptive