introducción a los sistemas de tiempo real...
TRANSCRIPT
IntroducciIntroduccióón a los Sistemas n a los Sistemas de Tiempo Real (RTS)de Tiempo Real (RTS)
WolfgangWolfgang [email protected]@usm.cl
Marzo 2007Marzo 2007
El Escenario RTSEl Escenario RTS
OperadorSistema de
Tiempo RealObjeto a Controlar
Interfaz Hombre - Máquina Instrumentación
RTS: DefiniciRTS: Definicióónn
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.
Procesos Procesos vsvs TareasTareas
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 Procesos vsvs Tareas (cont.)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.
evento
tarea
deadline
latencia holgura
términoinicio
DeadlineDeadline
Este concepto fue acuñado por primera vez en la prisión de Andersonville, durante la guerra civil en Norteamérica.
DeadlineDeadline (cont.)(cont.)
En RTS se pueden identificar tres tipos de deadlines:
Soft-Deadlineel resultado tiene validez aún después de la deadline.
Firm-Deadlineel resultado no es válido después de la deadline.
Hard-Deadlineel resultado puede ser una catástrofe
ClasificaciClasificacióón de RTSn de RTS
Existen básicamente 2 tipos:Hard Real-Time Systems
Debe garantizar el éxito de tareas críticas.
Soft Real-Time SystemsTareas críticas deben tener mayor prioridad sobre otras tareas.
El modelo de tarea en RTSEl modelo de tarea en RTS
Existen 3 tipos de tareas:PeriódicasEsporádicasAperiodicas
El modelo más usado es el de tareas periódicas que puede ser modelar como:
t = (o, p, c, d)ti es la instancia i de la tarea t
Ej.: Control de Nivel de un Estanque Ej.: Control de Nivel de un Estanque (cont.)(cont.)
tarea de control r con tiempo de ejecución c, offset o, y periodo p, donde p = 2,5c, y o = 0,5c :
r1 r2 r3 r4 r5r0
tiempo
periodo
tiempo de ejecución c
offset o
análisis de factibilidad:
14,00
=≤=∑=
n
ii
i
pc
0 p 2p 3p 4p 5p
Ej.: Control de Nivel de un Estanque Ej.: Control de Nivel de un Estanque (cont.)(cont.)
Se añade ahora una tarea de monitoreo para estadística scon tiempo de ejecución 2,5c, offset 1,5c y periodo 3p:
r1 r2 r3 r4 r5r0
tiempo
análisis de factibilidad:
173,0)5,2(3
5,25,2
10
≤=+=∑=
n
ii
i
pc
0 p 2p 3p 4p 5p
s0 s1
Ej.: Control de Nivel de un Estanque Ej.: Control de Nivel de un Estanque (cont.)(cont.)
Si la tarea de monitoreo tiene offset 0, manteniendo el periodo se tiene para:
non-preemptive scheduling
r1 r2 r3 r4 r5r0
tiempo0 p 2p 3p 4p 5p
s0 s1
Ej.: Control de Nivel de un Estanque Ej.: Control de Nivel de un Estanque (cont.)(cont.)
preemptive scheduling (RM)
r1 r2 r3 r4 r5r0
tiempo0 p 2p 3p 4p 5p
s0 s1
r1 r2 r3 r4 r5r0
RTS RTS SchedulingScheduling: Taxonom: Taxonomíía a
RTS scheduling
soft hard
dynamic static
preemptive Non-preemptive preemptive Non-preemptive
On-lineOff-line
preemptive Non-preemptive
RTS RTS SchedulingScheduling: Algoritmos: Algoritmos
Rate MonotonicRate MonotonicEarliestEarliest DeadlineDeadline FirstFirstLeastLeast StackStack TimeTimeFirstFirst In In FirstFirst OutOut
RateRate MonotonicMonotonic (RM) (RM) SchedulingScheduling
RM scheduling se RM scheduling se aplicaaplica a a tareastareas queque cumplencumplencon con laslas siguientessiguientes condicionescondiciones::
UnaUna tareatarea de de completarcompletar susu trabajotrabajo dentrodentro del del periodoperiodoNo hay dependencias entre tareasNo hay dependencias entre tareasCada Cada burstburst de CPU es del mismo largode CPU es del mismo largoToda tarea noToda tarea no--periperióódica no tiene dica no tiene deadlinedeadlineNo hay No hay overheadoverhead por el cambio de contextopor el cambio de contexto
Earliest Deadline First (EDF) Earliest Deadline First (EDF) SchedulingScheduling
EDF scheduling EDF scheduling asignaasigna prioridadesprioridades dindináámicasmicas de de acuerdoacuerdo a la deadline:a la deadline:
CuantoCuanto mmááss pronto la deadline, mayor pronto la deadline, mayor prioridadprioridad; ; cuanto mcuanto máás tarde la s tarde la deadlinedeadline, menor prioridad, menor prioridadSe aplica tambiSe aplica tambiéén a tareas non a tareas no--periperióódicasdicasNo se requiere un No se requiere un burstburst de CPU constantede CPU constanteDebe anunciar su Debe anunciar su deadlinedeadline
Ejemplo: MisiEjemplo: Misióón Espacial (cont.)n Espacial (cont.)
El 4 de El 4 de juliojulio de 1997 la de 1997 la misimisióónn espacialespacial Mars Pathfinder aterriza aterriza en forma exitosa en la superficie de Marte y comienza a recabar en forma exitosa en la superficie de Marte y comienza a recabar informaciinformacióón n ……. todos piensan que la misi. todos piensan que la misióón fue un n fue un ééxito total!xito total!
Pocos dPocos díías mas máás tarde el auts tarde el autóómata comienza a mata comienza a reinicializarsereinicializarse cada cada cierto tiempo con la respectiva pcierto tiempo con la respectiva péérdida de datos en la rdida de datos en la transmisitransmisióón de la informacin de la informacióón n ……
Al comienzo se atribuyAl comienzo se atribuyóó la falla al hardware, sin embargo la la falla al hardware, sin embargo la causa era la inversicausa era la inversióón de prioridad de tareas que no fue n de prioridad de tareas que no fue considerado en el diseconsiderado en el diseñño del software de tiempo real.o del software de tiempo real.
Sistemas Operativos de Tiempo Real Sistemas Operativos de Tiempo Real (RTOS)(RTOS)
Una alternativa para el diseUna alternativa para el diseñño de sistemas de o de sistemas de tiempo real.tiempo real.Reemplaza el modelo delReemplaza el modelo del–– (gran) lazo principal (gran) lazo principal ––Incorpora los conceptos de tareas, prioridades, Incorpora los conceptos de tareas, prioridades, latencia, latencia, etcetc, , ……..
RTOS: Ejemplo RTRTOS: Ejemplo RT--LinuxLinux
InspiradoInspirado en MERT (Bell Labs 1978).en MERT (Bell Labs 1978).RTRT--Linux Linux usausa unauna emulaciemulacióónn de de interrupcionesinterrupciones..PequePequeñño y simple.o y simple.Linux Linux eses unauna tareatarea osciosaosciosa de RTde RT--Linux.Linux.
RTOS: Ejemplo RTRTOS: Ejemplo RT--Linux (cont.)Linux (cont.)
IncorporaIncorpora algoritmosalgoritmos RM y EDF RM y EDF paraparaitineraciitineracióónn de de tareastareasMejorMejor esfuerzoesfuerzo entreentre atenciatencióónn de de rutinasrutinas de de interrupciinterrupcióónn y el jitter en la y el jitter en la itineraciitineracióónn de de tareastareasSoportaSoporta operacioperacióónn de timers en de timers en modomodo –– one one shot shot –– y y periperióódicodico..
Arquitectura de RTArquitectura de RT--LinuxLinux
User Process
RT Fifo
RT Fifo
RT Process
Peripheral Device
Linux Kernel
NetworkDisk
X Windows
Display
OS vs. RTOSOS vs. RTOS
Non-RT
0
5
10
15
20
25
30
35
40
0 2 4 6 8 10 12 14 16 18 20Expected Wait-Time [ms]
jitte
r [m
s]
Min
AVG
MAX
OS vs. RTOS (cont.)OS vs. RTOS (cont.)
LXRT
0
2
4
6
8
10
12
14
16
18
0 2 4 6 8 10 12 14 16 18 20
Expected Wait-Time [ms]
jitte
r [us
]
LXRT-Min
LXRT-AVG
LXRT-MAX
OS vs. RTOS (cont.)OS vs. RTOS (cont.)
Non-RT
0
5
10
15
20
25
30
35
40
45
100 1100 2100 3100 4100 5100 6100 7100 8100 9100
Mill
ones
Delay [us]
Tick
s
MinAVGMAXLXRT-MinLXRT-AVGLXRT-MAX