Introducción n a los Sistemas de Tiempo Real (RTS) Wolfgang Freund Wolfgang.Freund@usm.cl Marzo 2007
El Escenario RTS Interfaz Hombre - Máquina Instrumentación Operador Sistema de Tiempo Real Objeto a Controlar
Dominio Sistemas Embebidos Sistemas de Tiempo Real
RTS: Definición El éxito de tareas en tiempo real no dependen tan sólo del resultado lógico de la operación sino también del tiempo de ocurrencia. Un sistema de tiempo real no implica necesariamente rapidez, más bien puntualidad. Si un resultado es temporalmente consistente no lo define la velocidad de procesamiento sino las variables de entorno.
Ejemplo Uso de Airbags como un sistema de seguridad pasiva en automóviles.
Ejemplo (cont.) Airbags: principio de operación
Procesos vs Tareas En sistemas de propósitos generales, la unidad básica de ejecución es el proceso o hebra, caracterizados por sus tiempos de respuesta.
Procesos vs Tareas (cont.) En RTS la unidad básica de ejecución se denominan tarea (task), y puede ser caracterizada entre otros factores por su tiempo de ejecución y su deadline. latencia tarea holgura evento inicio deadline término
Deadline Este concepto fue acuñado por primera vez en la prisión de Andersonville, durante la guerra civil en Norteamérica.
Deadline (cont.) En RTS se pueden identificar tres tipos de deadlines: Soft-Deadline el resultado tiene validez aún después de la deadline. Firm-Deadline el resultado no es válido después de la deadline. Hard-Deadline el resultado puede ser una catástrofe
Clasificación n de RTS Existen básicamente 2 tipos: Hard Real-Time Systems Debe garantizar el éxito de tareas críticas. Soft Real-Time Systems Tareas críticas deben tener mayor prioridad sobre otras tareas.
El modelo de tarea en RTS Existen 3 tipos de tareas: Periódicas Esporádicas Aperiodicas El modelo más usado es el de tareas periódicas que puede ser modelar como: t = (o, p, c, d) t i es la instancia i de la tarea t
Ej.: Control de Nivel de un Estanque Actuador h Sensores v
Ej.: Control de Nivel de un Estanque (cont.) tarea de control r con tiempo de ejecución c, offset o, y periodo p, donde p = 2,5c, y o = 0,5c : tiempo de ejecución c offset o periodo r 0 r 1 r 2 r 3 r 4 r 5 análisis de factibilidad: 0 p 2p 3p 4p 5p n i= 0 ci p i = 0,4 = 1 tiempo
Ej.: Control de Nivel de un Estanque (cont.) Se añade ahora una tarea de monitoreo para estadística s con tiempo de ejecución 2,5c, offset 1,5c y periodo 3p: r 0 r 1 r 2 r 3 r 4 r 5 s 0 s 1 0 p 2p 3p 4p 5p tiempo análisis de factibilidad: n i= 0 ci p i = 1 2,5 + 2,5 3(2,5) = 0,73 1
Ej.: Control de Nivel de un Estanque (cont.) Si la tarea de monitoreo tiene offset 0, manteniendo el periodo se tiene para: non-preemptive scheduling r 0 r 1 r 2 r 3 r 4 r 5 s 0 s 1 0 p 2p 3p 4p 5p tiempo
Ej.: Control de Nivel de un Estanque (cont.) preemptive scheduling (RM) r 0 r 1 r 2 r 3 r 4 r 5 s 0 s 1 r 0 r 1 r 2 r 3 r 4 r 5 0 p 2p 3p 4p 5p tiempo
RTS Scheduling: : Taxonomía RTS scheduling soft hard Off-line On-line preemptive Non-preemptive dynamic static preemptive Non-preemptive preemptive Non-preemptive
RTS Scheduling: : Algoritmos Rate Monotonic Earliest Deadline First Least Stack Time First In First Out
Rate Monotonic (RM) Scheduling RM scheduling se aplica a tareas que cumplen con las siguientes condiciones: Una tarea de completar su trabajo dentro del periodo No hay dependencias entre tareas Cada burst de CPU es del mismo largo Toda tarea no-peri periódica no tiene deadline No hay overhead por el cambio de contexto
Earliest Deadline First (EDF) Scheduling EDF scheduling asigna prioridades dinámicas de acuerdo a la deadline: Cuanto más pronto la deadline, mayor prioridad; cuanto más m s tarde la deadline,, menor prioridad Se aplica también n a tareas no-peri periódicas No se requiere un burst de CPU constante Debe anunciar su deadline
Real-Time Scheduling Example 1
Real-Time Scheduling Example 2
Ejemplo: Misión n Espacial
Ejemplo: Misión n Espacial (cont.) El 4 de julio de 1997 la misión espacial Mars Pathfinder aterriza en forma exitosa en la superficie de Marte y comienza a recabar información.. todos piensan que la misión n fue un éxito total! Pocos días d más m s tarde el autómata comienza a reinicializarse cada cierto tiempo con la respectiva pérdida p de datos en la transmisión n de la información Al comienzo se atribuyó la falla al hardware, sin embargo la causa era la inversión n de prioridad de tareas que no fue considerado en el diseño o del software de tiempo real.
Sistemas Operativos de Tiempo Real (RTOS) Una alternativa para el diseño o de sistemas de tiempo real. Reemplaza el modelo del (gran) lazo principal Incorpora los conceptos de tareas, prioridades, latencia, etc,.
RTOS: Ejemplo RT-Linux Inspirado en MERT (Bell Labs 1978). RT-Linux usa una emulación de interrupciones. Pequeño o y simple. Linux es una tarea osciosa de RT-Linux.
RTOS: Ejemplo RT-Linux (cont.) Incorpora algoritmos RM y EDF para itineración de tareas Mejor esfuerzo entre atención de rutinas de interrupción y el jitter en la itineración de tareas Soporta operación de timers en modo one shot y periódico dico.
Arquitectura de RT-Linux RT Fifo User Process RT Fifo X Windows Linux Kernel RT Process Display Disk Network Peripheral Device
OS vs. RTOS Non-RT 40 35 30 Min AVG MAX jitter [ms] 25 20 15 10 5 0 0 2 4 6 8 10 12 14 16 18 20 Expected Wait-Time [ms]
OS vs. RTOS (cont.) 18 16 14 12 LXRT-Min LXRT-AVG LXRT-MAX LXRT jitter [us] 10 8 6 4 2 0 0 2 4 6 8 10 12 14 16 18 20 Expected Wait-Time [ms]
OS vs. RTOS (cont.) Non-RT Ticks Millones 45 40 35 30 25 20 15 10 5 Min AVG MAX LXRT-Min LXRT-AVG LXRT-MAX 0 100 1100 2100 3100 4100 5100 6100 7100 8100 9100 Delay [us]
RTOS distribuidos Tiempo Global: buscando un algorítmo de sincronización de relojes: Sincronización n interna Sincronización n externa