Title: Planificaci
1Planificación
- Nora Blet
- Informática III
2Concurrencia
- Los sistemas de tiempo real controlan actividades
del mundo exterior que son concurrentes - Para ello deben ejecutar varias actividades o
tareas en paralelo (concurrentemente) - La ejecución de las tareas se multiplexa en el
tiempo en uno o varios procesadores
3Núcleo de ejecución (RTSS)
- Los procesos concurrentes se ejecutan con la
ayuda de un núcleo de ejecución (RTSS, Run-time
support system) que tiene muchas de las
propiedades de los planificadores en un sistema
operativo y, se situa lógicamente entre el
hardware y el software de la aplicación - Se encarga de la creación, terminación y
multiplexado de los procesos
4Núcleo de ejecución (RTSS) Opción 1
- Desarrollado como parte de la aplicación
5Núcleo de ejecución (RTSS) Opción 2
- Sistemas operativos de tiempo real específicos
(LynxOS, QNX, VxWorks, estándar POSX)
6Núcleo de ejecución (RTSS) Opción 3
- Sobre la un núcleo máquina desnuda fabricar un
núcleo básico ad-hoc con un planificador de
tareas de tiempo real
7Núcleo de ejecución (RTSS) Opción 4
- Arquitectura con máquina virtual (RT-Linux)
8Objetivos
- Cómo planificar el uso de los recursos de forma
tal de garantizar los requisitos temporales? - En general un esquema de planificación
proporciona dos elementos - Un algoritmo de planificación que determina el
orden de acceso de las tareas a los recursos del
sistema (en particular, el procesador) - Un método de análisis que permite predecir el
comportamiento temporal del sistema - Las predicciones son útiles para confirmar que
pueden garantizarse los requisitos temporales del
sistema - En general, se estudia el peor comportamiento
posible
9Introducción
- Un esquema de planificación puede ser
- Estático el análisis se realiza antes de la
ejecución - Dinámico se toman decisiones en tiempo de
ejecución - Un método estático muy usado es el de
planificación con prioridades fijas y desalojo - La prioridad es un parámetro relacionado con la
urgencia o importancia de la tarea - En todo momento se ejecuta la tarea con mayor
prioridad de todas las ejecutables (es decir, no
esté retrasado o suspendido) -
10Arquitecturas de software
- Definen la estructura general de una clase de
sistemas de tiempo real - Hay dos tipos principales de arquitecturas
- Arquitectura síncrona
- Las tareas se ejecutan según un plan de ejecución
fijo (realizado por el diseñador) - El sistema operativo se reemplaza por un
ejecutivo cíclico - Arquitectura asíncrona
- Las tareas se reparten el procesador de forma
dinámica (invisible para el diseñador) - Cada tarea tiene una prioridad
- En cada momento se ejecuta la tarea activa de
mayor prioridad
11Arquitectura síncrona
12Arquitectura asíncrona
13Esquemas de planificación
14Modelo de tareas simple
- Se supone que la aplicación está compuesta por un
conjunto fijo de tareas y se conoce en tiempo de
ejecución (estático) - Todas las tareas son periódicas, con periodos
conocidos - Las tareas son completamente independientes unas
de otras - Los plazos de respuesta de todas las tareas son
iguales a sus periodos (o sea, cada tarea debe
acabar antes de ser ejecutada nuevamente) - El tiempo de ejecución máximo de cada tarea es
conocido y fijo - Todas las sobrecargas del sistema son ignoradas
15Parámetros de planificación
- N Número de tareas en el sistema
- T Período de activación de una tarea
- C Tiempo de ejecución máximo de una tarea
- D Plazo de respuesta de una tarea
- R Tiempo de respuesta máximo de una tarea
- P Prioridad
- En el modelo de tareas simple, para cada tarea
?i -
- Se trata de asegurar
16Modelo de tareas en tiempo real
dk
rk
Dk
Ck
Rk
17Hiperperíodo
- En el modelo de tarea simple se denomina
hiperperíodo del sistema a - El comportamiento temporal se repite cada
hiperperíodo
18Planificación con ejecutivos cíclicos
- Si todas las tareas son periódicas, puede
confeccionarse un plan de ejecución fijo - Se trata de un esquema que se repite cada ciclo
principal - Cada ciclo principal se divide en ciclos
secundarios, con periodos - En cada ciclo secundario se ejecutan las
actividades correspondientes a determinadas
tareas
19Ejemplo
20Ejemplo
21Propiedades
- No hay concurrencia en la ejecución
- Cada ciclo secundario es una secuencia de
llamadas a procedimientos - Los procedimientos comparten un espacio de
direcciones, por lo que pueden pasar datos entre
ellos - No hace falta usar mecanismos de exclusión mutua
porque es imposible el acceso concurrente - Todos los periodos de las tareas deben ser
múltiplos del periodo de los ciclos secundarios - Puede ser necesario usar períodos mas cortos de
lo necesario - No hace falta analizar el comportamiento temporal
- El sistema es correcto por construcción
22Problemas
- Dificultad para incorporar tareas esporádicas
- Dificultad en la construcción del plan cíclico
- Si los períodos son de diferentes órdenes de
magnitud el número de ciclos secundarios se hace
muy grande - Puede ser necesario partir una tarea en varios
procedimientos - En el caso más general, es un problema NP duro
- Poco flexible y difícil de mantener
- Cada vez que se cambia una tarea hay que rehacer
toda la planificación
23Programación basada en tareas
- Las tareas se realizan como procesos concurrentes
- Una tarea puede estar en varios estados
(suponiendo que no exista comunicación entre
procesos)
24Programación basada en procesos
- Las tareas ejecutables se despachan para su
ejecución de acuerdo con un esquema de
planificación - Prioridades fijas (FPS, por Fixed-Priority
Scheduling) - Primero el más urgente (EDS, por Earliest
Deadline First) - Primero el más valioso (VBS, por Value-Based
Scheduling)
25Planificación con prioridades fijas
- Es el método más corriente en los sistemas
operativos de tiempo real - Cada tarea tiene un prioridad fija, estática, que
se calcula antes de su ejecución - Las tareas ejecutables se despachan para su
ejecución en orden de prioridad - El despacho puede hacerse
- Con desalojo
- Sin desalojo
- Con desalojo limitado
- En general, se supondrá prioridad fija con
desalojo - Se mejora la reacción de los procesos de alta
prioridad
26Primero el más urgente
- Las tareas ejecutables se despachan por orden de
los respectivos tiempos límites (absolutos) - La primer tarea que se ejecuta es la más urgente
(aquélla cuyo plazo vence antes) - Los tiempos límites absolutos se calculan en
tiempo de ejecución (esquema dinámico)
27Primero el más valioso
- Si el sistema puede sobrecargarse no será
suficiente el simple uso de los métodos
anteriores - Se precisa un esquema más adaptable
- Se asigna un valor a cada tarea, y se emplea un
algoritmo de planificación en línea basado en
ellos para decidir cuál es la siguiente tarea a
ejecutar
28Prioridades de tasa monotónica
- Se asigna menor prioridad a las tareas de menor
período (rate monotonic scheduling), es óptima
para el modelo de tareas simple - Si pueden garantizarse los plazos de un conjunto
de tareas con otra asignación de prioridades,
podrán garantizarse con el esquema de asignación
de prioridades con tasa monotónica
29Factor de utilización
- Es una medida de la carga del procesador para un
conjunto de tareas - En un sistema con un único procesador
- Liu y Layland (1973) demostraron que usando este
factor puede obtenerse un test de
planificabilidad para RM
30Análisis basado en la utilización
- Para el modelo simple, con DT, con prioridades
de tasa monotónica, los plazos están garantizados
si - N Utilización mínima garantizada U0(N)
- 1 100.0
- 2 82.8
- 3 78.0
- 4 75.7
- 5 74.3
- 10 71.8
31Ejemplo 1
- La utilización combinada es del 0.82 (gt0.78) por
tanto este conjunto de tareas no pasa el test de
utilización. En el instante t50 la tarea a
incumple su primer límite temporal
Tarea T C
P U a 50 12
1 0.24 b 40 10
2 0.25 c 30 10 3
0.33
32Ejemplo 1
33Ejemplo 1 Diagrama de Gantt
c
b
a
c
b
0
10
20
30
40
50
Tiempo
34Ejemplo 2
- Este sistema está garantizado (Ult0.78)
Tarea T C
P U a 80 32
1 0.400 b 40 5
2 0.125 c 16 4 3
0.250
35Instante crítico
- Las líneas temporales pueden utilizarse para
probar la planificabilidad - Para conjunto de tareas que comparten un tiempo
de activación común (instante crítico) es
suficiente dibujar una línea temporal igual al
tamaño del periodo más largo (Liu y Layland,
1973) - Si todos las tareas cumplen su primer límite
temporal, entonces cumplirán todos sus límites
futuros
36Ejemplo 3
- Este sistema no pasa la prueba de utilización
(U1gt0.78) pero, se cumplen los plazos
Tarea T C
P U a 80 40
1 0.50 b 40 10
2 0.25 c 20 5 3
0.25
37Ejemplo 3
Tarea
a
Desalojado
b
En ejecución
c
70
80
Tiempo
38Utilización mínima garantizada
- Es una condición suficiente pero no necesaria
- En muchos casos se pueden garantizar los plazos
con factores de utilización mayores a U0(N) - Sólo puede utilizarse para conjunto de tareas con
plazos igual al periodo - No se puede aplicar a modelos de tareas más
complejos
39Factor de utilización con EDF
- Los plazos están garantizados si y sólo si
- Permite una mayor utilización del procesador. FPS
tiene algunas ventajas sobre EDF - FPS es más sencillo de implementar
- EDF requiere un sistema de tiempo de ejecución
más complejo - Durante las situaciones de sobrecarga el
comportamiento de FPS es mas predecible - EDF requiere que todas las tareas tengan un plazo
asignado
40Análisis del tiempo de respuesta para FPS
- Las pruebas basadas en la utilización para FPS
tienen 2 inconvenientes - No son exactas y,
- No son realmente aplicables a un modelo de tareas
más general - Se verá una forma diferente basada en el cálculo
del tiempo de respuesta en el peor caso de cada
tarea, Ri y una simple comprobación
R ? D
i
i
41Análisis del tiempo de respuesta para FPS
- El tiempo de respuesta en el peor caso de cada
tarea es igual a la suma del tiempo de ejecución
en el peor caso para la misma más la
interferencia que sufre por la ejecución de
tareas con mayor prioridad - La interferencia es máxima cuando todas las
tareas se activan a la vez (instante crítico)
42Instante crítico
- La interferencia es máxima cuando todos las
tareas se activan a la vez - El instante inicial se denomina instante crítico
43Cálculo de la interferencia
- El número de veces que una tarea de prioridad
superior, j, se ejecuta durante el intervalo 0,
Ri) es
La función techo obtiene el menor entero
mayor que el fraccionario sobre el que actúa. El
techo de 1/3 es 1, el de 6/5 es 2, y el de 6/3 es
2.
La interferencia total es
44Cálculo del tiempo de respuesta
donde hp(i) es el conjunto de tareas de prioridad
mayor que i. La ecuación no es continua ni lineal
y no puede resolverse analíticamente (Joseph y
Pandya, 1986)
45Cálculo del tiempo de respuesta
- Se puede resolver mediante la relación de
recurrencia (Audsley et al., 1993) - El conjunto de valores es monótono no
decreciente - Un valor aceptable de puede ser Ci (o 0)
46Cálculo del tiempo de respuesta
47Ejemplo 4
- Tarea T C P
- a 7 3 3
- b 12 3 2
- c 20 5 1
48Ejemplo 4
Tarea T C P
a 7 3 3 b
12 3 2 c
20 5 1
49Ejemplo 3 - revisión
- El cálculo de los tiempos de respuesta indica que
todas las tareas tienen garantizados sus plazos
Tarea T C
P R a 80 40
1 80 b 40 10
2 15 c 20 5 3
5
50Propiedades del análisis del tiempo de respuesta
- Proporciona una condición necesaria y suficiente
para la garantía de los plazos - Proporciona un análisis del comportamiento
temporal del sistema más exacto quel método
basado en la utilización - El elemento crítico es el tiempo de cómputo de
cada tarea - Optimista Los plazos pueden fallar aunque el
análisis sea positivo - Pesimista El análisis puede ser negativo y en la
realidad no fallen los plazos
R ? D
i
i
51Tiempo de ejecución en el peor caso (WCET)
- Interesa el tiempo de ejecución en el peor caso
(WCET, worst case execution time) - Hay dos formas de obtener el WCET de una tarea
- Medida del tiempo de ejecución
- No es fácil saber cuándo se ejecuta el peor caso
posible - Análisis del código ejecutable
- Puede ser muy pesimista
- Hace falta tener un modelo adecuado del
procesador - Es difícil tener en cuenta los efectos de los
dispositivos de hardware (cachés, pipelines,
estados de espera de la memoria, etc.)
52Generalización del modelo de tareas
- El análisis del tiempo de respuesta visto para el
modelo de tareas básico puede extenderse con - Tareas esporádicas y aperiódicas
- Plazos menores o mayores que los períodos
- Interacción mediante secciones críticas
- Planificación cooperativa
- Fluctuaciones (jitter) en la activación
- Tolerancia a fallos
- Desfases (offsets)
53Referencias
- Burns, A. Wellings, A. "Sistemas de Tiempo Real y
Lenguajes de Programación", Addison-Wesley (2003)
Capítulo 6 - Transparencias de Juan Antonio de la Puente
http//polaris.dit.upm.es/jpuente/ - Transparencias de Javier Macías Guarasa
http//www-lsi.die.upm.es/carreras/ISSE/sistemas_
con_restricciones_1.x2.pdf