Planificación en sistemas de tiempo real
CONTENIDO
Introducción
Modelo de tareas de tiempo real
Criterios para la planificación en tiempo real
Políticas de planificación para tiempo real
Planificación con tareas aperiódicas
Introducción
Dado un conjunto de tareas, se trata de planificar su ejecución de forma que todas ellas cumplan los plazos.
Requiere políticas de planificación específicas.
IntroducciónEnfoques (1)
Algunos sistemas operativos soportan procesos de “clase de tiempo real”.
Son procesos con prioridades estáticas más altas que los procesos de tiempo compartido.
Ejemplos: Unix SVR4, Windows
Sólo adecuados para sistemas flexibles (soft real-time):
Contienen código no expulsable en el núcleo.
En general, demasiado voluminosos para sistemas empotrados y poco fiables.
IntroducciónEnfoques (2)
Enfoque de máquina virtual
Un núcleo RT planifica el SO como una tarea más.
Ejemplo: RT-Linux
El núcleo RT intercepta las interrupciones del hardware, por lo que la ejecución del SO puede ser interrumpida en cualquier momento.
Es posible comunicar tareas mediante colas FIFO.
IntroducciónEnfoques (3)
Sobre la máquina desnuda: fabricar un núcleo básico ad-hoc con un planificador de tareas de tiempo real.
Costoso en tiempo de desarrollo.
IntroducciónEnfoques (4)
Sistemas Operativos de Tiempo Real (RTOS) específicos.
Flexibles
Ejemplos: LynxOS, QNX, VxWorks, FreeRTOS, MARTE (Univ. de Cantabria)…
Estándar POSIX: apartados para sistemas de tiempo real que definen normas y servicios específicos a incluir.
Modelo de tareas de tiempo real
Acción. Mínima cantidad de cómputo en un sistema de tiempo real.
Ejemplo: decodificar un cuadro de video.
Requiere un recurso de cómputo.
Tarea. Conjunto de acciones repetidas a lo largo del tiempo.
Ejemplo: visualizar una secuencia de video.
t =
Modelo de tareas de tiempo real
Instante de activación de la acción, rk
La acción puede empezar a ejecutarse.
límite de la acción, dk.
La acción debe haber terminado
Tarea periódica: rk = r0 + kT
Habitualmente: rk+1 = di
y entonces el periodo es: T = dk – rk
Tarea aperiódica: rk+1 – rk variable.
J0
J1
J2
r0
r1
r2
r3
d0
d1
d2
Jk
Rk
Modelo de tareas de tiempo real
Plazo de ejecución, Dk = dk – rk
Condición necesaria: Ck < Dk
Tiempo de respuesta, Rk
Ck
Dk
rk
dk
Modelo de tareas de tiempo realPlazos
Plazo estricto
Todas las acciones deben ocurrir dentro del plazo
Los fallos pueden ser catastróficos
Ejemplo: sistema de control de vuelo
Plazo flexible
Se pueden incumplir plazos de vez en cuando
El valor de la respuesta decrece con el paso del tiempo
Ejemplo: sistema de adquisición
Plazo firme
Se pueden perder plazos ocasionalmente
Las respuestas fuera de plazo no tienen valor
Ejemplo: Sistemas multimedia
Modelo de tareas de tiempo realPlazos
(Extraído del curso de J.A. de la Puente, UPM)
Modelo de tareas de tiempo realPlazos
Sistemas garantizados
Plazos estrictos
Validación
Sistemas de esfuerzo óptimo (best-effort)
Plazos flexibles
Requisitos estadísticos
Criterios de Calidad de Servicio (QoS):
Tasa de cumplimiento del plazo
Tiempos de respuesta
etc
Modelo de tareas de tiempo realParámetros
N tareas periódicas
1 procesador
Parámetros temporales de las tareas:
Tarea ?i : (Fi, Ti, Ci, Di)
Una acción Ji,k
Se activa en ri,k = Fi + kTi
Debe terminar antes de di,k = Fi + kTi + Di
Habitualmente: Di = Ti
Criterios para la planificación en tiempo real
Dado un conjunto de tareas de tiempo real
{?1, ?2, …, ?N}
el objetivo es proporcionar una planificación viable.
Condición necesaria para la viabilidad (para tareas periódicas):
U=? Ci/Ti < 1
Tareas aperiódicas: encontrar periodo mínimo (si es posible) y expresarlas como periódicas con ese periodo.
Criterios para la planificación en tiempo real
La viabilidad es un criterio absoluto en sistemas de plazo estricto.
Sistemas de plazo no estricto:
Plazo flexible: minimizar la magnitud de los retrasos.
Plazo firme: minimizar el número de retrasos.
Criterios para la planificación en tiempo realEjemplo
¿viable?
Página siguiente |