1
TEMA 6
Planificación dinámica de tareas
2
Introducción.Asignación dinámica de prioridades.
Planificación EDFPlanificación LSF
Sobrecargas. Estabilidad.
3
Introducción
4
Introducción
En algunos sistemas de tiempo real la carga de trabajo no es fija:
El entorno es cambiante.Las tareas se crean/destruyen dinámicamente.Las tareas pueden aparecer en ráfagas.Una parte del sistema falla.
La planificación de recursos se debe realizar en tiempo de ejecución.La planificación se basa en los atributos de las tareas.No se conoce a priori las necesidades de tareas futuras.
5
Modelo de Sistema
El sistema: compuesto por transacciones y recursos.
Recursos del sistema: procesadores, memoria, etc.Las transacciones están compuestas por procesos, y éstos por tareas.Una tarea necesita un conjunto fijo de recursos.El conjunto de tareas del sistema no es fijo y sus atributos son arbitrarios (tiempo de llegada, uso de recursos, tiempo de cómputo, plazos de respuesta, valor de importancia, relaciones de precedencia, . . . ).
6
Valor Críticas
Firmes
Acríticas
Tiempo
Parámetros de planificación de tareas
Además de los parámetros ya definidos, se consideran:E : Instante de inicio más tempranoRR : Uso de recursos.V : valor: importancia relativa de la tarea:
7
Tareas expulsivas y no expulsivas.Tareas periódicas y aperiódicas.Tareas con diversos valores de importancia.Grupos de tareas con un sólo plazo de respuesta.Restricciones temporales globales.Requisitos de precedencia, comunicación y uso de recursos.Restricciones de alojamiento en sistemas multiprocesador.Tolerancia a fallos.Situaciones de sobrecarga.
Aspectos a considerar por el planificador
8
Características de la planif. dinámica
Es un enfoque más flexible.No es posible garantizar los plazos de respuesta.No es adecuada para sistemas críticos.Sobrecarga en tiempo de ejecución.La planificación dinámica no es estable.En el caso general, el problema de planificación es NP-completo.La calidad de un método de planificación se determina mediante comparación con un planificador clarividente.
9
Fases de planificación
Análisis de planificabilidadSe comprueba si las tareas cumplen sus plazos de respuesta.Objetivo: maximizar el valor de las tareas correctas.Dos enfoques:
Basado en planes : Las tareas se ejecutan si se garantizan sus plazos.Esfuerzo óptimo (best effort): El sistema hace todo lo que puede. No se hace análisis de viabilidad.
Construcción del plan:Explícitamente: se construye un plan de ejecución explícito (EC)Implícitamente: el plan se construye al asignar prioridades a las tareas (estáticas ó dinámicas).
Despacho: Cuál es la tarea siguiente a ejecutar?.
10
Asignación dinámicade prioridades
11
El objetivo es asignar prioridades en forma dinámica a las tareasSe basa en algunos de los parámetros de las tareas.Es la base para métodos más complejos de planificación dinámica.La complejidad de la asignación depende de las características de las tareas.La prioridad se asigna cuando se activa una tarea.
Métodos:Earliest Deadline First (EDF)Least Slack First (LSF)
Asignación dinámica de prioridades
12
– Planificación por prioridades expulsiva– La tarea con el plazo más cercano tiene la máxima prioridad– No se requiere tener conocimiento del tiempo de ejecución
Es óptimo si:– Hay un solo procesador, sin recursos compartidos y con
planificación expulsiva
dk di
TkTi
dk di
TkTk Ti
(no-EDF)
(EDF)
Planificación Earliest Deadline First (EDF)
k
k
13
El algoritmo de planificación EDF utiliza el plazo de respuesta de las tareas como la base para tomar decisiones de planificación – una tarea con plazo más cercano es eligible para ejecución antes que otra tarea con plazo más largo.
Se asume que el plazo absoluto de una tarea es fijo y constante durante el tiempo de vida de la tarea. Cuando EDF es utilizado como mecanismo de planificación, se requiere que todas las tareas cumplan con sus plazos. Esta condición puede verificarse en forma estática, si conocemos todas las tareas que habrá en el sistema asícomo todos sus parámetros.
La carga de trabajo del sistema es estática si los parámetros no cambian, o puede ser dinámica si las tareas llegan al sistema en distintos tiempos, de forma que en cada llegada se realiza una prueba de aceptación (U < 1).
Planificación Earliest Deadline First (EDF)
14
Planificación EDF
• Algoritmo óptimo bajo un solo procesador y tareas expulsables.• ¿Cómo se sabe si un conjunto de tareas es planificable bajo EDF
?• Se pueden garantizar los plazos de respuesta si se cumple
que:
• Optima con una cota de utilización del 100%
• Si plazo < periodo, verifica los tiempos de respuesta en un intervalo igual al hiperperiodo con fase de tareas 0 (instante crítico).
U CT
i
ii
N
= ≤=∑ 1
1
15
Planificación EDF, suposiciones
• Las tareas pueden ser periódicas o aperiódicas.• Se ejecutan en un solo procesador• Las tareas son expulsables y no comparten recursos• Los plazos son iguales a los periodos.• No hay sobrecarga del sistema operativo.
16
Ejemplo
El sistema cumple la prueba de utilización (U < 1).
Con prioridades dinámicas (planificación EDF) se garantizan los plazos.
τ1
τ2
τ3
60 100 120 140 160 180
T D C U
τ 1 30 30 10 0.333
τ 2 40 40 10 0.250
0.823
τ 3 50 50 12 0.240
20 40 80
17
Ejemplo
Con prioridades fijas (planificación rate monotonic) no se garantizan los plazos.
τ1
τ2
τ3
60 100 120 140 160 180
T D C U
τ 1 30 30 10 0.333
τ 2 40 40 10 0.250
0.823
τ 3 50 50 12 0.240
20 40 80
10
20
52
R
18
Planificación por prioridades expulsiva– La tarea con menor holgura tiene la máxima prioridad– Es necesario tener conocimiento del tiempo de ejecución
Holgura : tiempo de cómputo disponible en ejecución.Si ci(t) es el tiempo de computación restante en el instante t, la holgura de
la tarea i es:slacki(t) = hi = di - t - ci(t)
dk
ci
Tk
di
Ti
Planificación Least Slack First (LSF)
ck
t
hi
hk
hk < hk
pk > pk
19
Ejemplo
T D C U
τ 1 30 30 10 0.333
τ 2 40 40 10 0.250
0.823
τ 3 50 50 12 0.240
Híper período = 300
Con prioridades dinámicas (planificación LSF) se garantizan los plazos.
200 50 100 150 200 250 300
5
10
15
20
25
30
35
40
h1
h3
h2
idle
τ 1
τ 2
τ 3
20
30
38
300
21
0 5 10 15 20 25 30 35 40 45 50
10
15
20
25
30
35
h1
h3
h2
idle
τ 1
τ 2
τ 3
20
30
38
19.8 19.85 19.9 19.95 20 20.05 20.1 20.15 20.218.85
18.9
18.95
19
19.05
19.1
22
Ejemplo
Con prioridades dinámicas (planificación LSF) se garantizan los plazos.
T D C U
τ 1 11 11 3 0.2727
τ 2 5 5 2 0.4000
0.9227
τ 3 8 8 2 0.2500
Híper período = 440
230 50 100 150 200 250 300 350 400 4
1
2
3
4
5
6
7
8
h1
h3
h2
440
240 50 100 150 200 250 300 350 400 45
-1
-0.5
0
0.5
1
1.5
2
idle
τ 1
τ 2
τ 3
440
27
Al considerar recursos compartidos y bloqueos, existe una analogía directa entre EDF y los algoritmos FPS (Fixed Priority Scheduling). Mientras que FPS adolece de inversión de prioridad, EDF sufre de inversión del tiempo límite (cuando un proceso necesita un recurso que actualmente está bloqueado por otro proceso con un deadlinemás largo). Se han desarrollado protocolos de acotación para EDF, aunque son más complejos que en FPS.
En FPS, debido a que las prioridades son estáticas, resulta fácil determinar qué proceso puede bloquear al proceso analizado actualmente. Con EDF, esta relación es dinámica: depende de cuáles sean los procesos (con tiempos límite más largos) que estén activos cuando el proceso se active, y esto varía de una activación a otra a lo largo del hiperperiodo.
Recursos compartidos y bloqueos
28
0
T3
T2
T1
InversiInversióón de prioridadn de prioridad
Ejemplo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
5
6
14
16
Pérdida de plazo límite
29
Los recursos compartidos de forma excluyente entre tareas se pueden gestionar bajo una planificación basada en prioridades dinámicas
Protocolos:Herencia de prioridad dinámica (DIP)Techo de prioridad dinámico (DPCP)Stack Resource Policy (SRP)
El protocolo de pila de recursos es una extensión del protocolo de techo de prioridad inmediato (IPCP)Permite tratar el caso general de varias réplicas del mismo recurso
Recursos compartidos
30
0
T3
T2
T1
Herencia de prioridad dinHerencia de prioridad dináámica (DIP)mica (DIP)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
5
6
14
16
31
T0
S0
T1
S1
T2
S2
T0 :
T1 :
T2 :
S0 S1
S2
S2
S2
S1T2 S2
S2
S2 S1 S1
S1
S2
S2
T0S0
S0
S0
S1
S1 S1
T1
S2
S2
S2
S1
PT2P0
P1
P2
P0 P1 P2> >
P0 P0 P1C(Si)
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11
Techo deTecho dePrioridadPrioridadDinDináámicomico(DPCP)(DPCP)
anidada
32
Techo de Prioridad Dinámica (DPCP)
Propiedades
Una tarea puede bloquearse como mucho una vez antes de entrar en su primera sección crítica.Evita los deadlock
Un conjunto de n tareas es planificable bajo EDF si:
Bi : tiempo de bloqueo de peor casoCi : tiempo de ejecución de peor casoTi : periodo de la tarea
iτ
11
≤+∑
=
n
i i
ii
TBC
33
Protocolo de control de concurrencia propuesto por Baker en 1991 para acotar la inversión de prioridad tanto en sistemas que utilizan prioridades estáticas como dinámicas.
Funciona de modo muy similar al protocolo de techo de prioridad inmediato para FPS (de hecho, SRP influyó en el desarrollo de IPCP).
A cada tarea, bajo SRP, se le asigna un nivel de apropiación, de forma separada de las prioridades, de tal manera que sean inversamenteproporcionales a sus plazos relativos.
Los niveles de apropiación reflejan los tiempos límite relativos de las tareas, de modo que cuanto más cortos sean, mayor será el nivel de apropiación (como si la prioridad estática de los procesos fuera asignada por el esquema deadline monotonic). En tiempo de ejecución, las tareas reciben una cota basada en el máximo nivel de apropiación de las tareas que utilizan el recurso.
Stack Resource Policy (SRP)
34
Cuando se activa una tarea sólo puede desalojar a la actualmente en ejecución si su tiempo límite absoluto es más corto y su nivel de apropiación es mayor que la cota más alta de los recursos actualmente bloqueados.
El resultado de este protocolo es idéntico al IPCP. Las tareas sufren únicamente un bloqueo que ocurre al ser activados. Así, se previenen los bloqueos mutuos y existe una fórmula simple para calcular el tiempo de bloqueo.
Permite el caso general de varias réplicas del mismo recurso.
Stack Resource Policy (SRP)
35
Stack Resource Policy (SRP)
SRP garantiza que una vez que una tarea empieza, no se bloqueará hasta que se complete, y sólo pueden apropiarse del procesador tareas con una prioridad mayor.
Por otra parte, previene los abrazos mortales, y acota el tiempo durante el cual una tarea puede ser bloqueada al que dure una sección crítica. No se necesitan colas de espera, de hecho una tarea nunca se bloquea durante su ejecución, simplemente no puede empezar a ejecutarse si su nivel de apropiación no es lo suficientemente alto.
La diferencia esencial entre PCP y SRP es en el momento en que una tarea se bloquea. Mientras que en PCP una tarea se bloquea en el momento en que haga su primera solicitud de recursos, en el caso de SRP una tarea se bloquea en el momento en que trata de desalojar a otra. Este bloqueo temprano reduce ligeramente la concurrencia, pero ahorra cambios de contexto innecesarios, lo que simplifica la aplicación del protocolo, y permite compartir la pila de recursos en tiempo de ejecución.
36
PrioridadA cada tarea Ti se le asigna una prioridad pi que indica la importancia (urgencia) de la tarea respecto al resto de tareas en el sistema. La asignación de prioridades a las tareas puede realizarse estática ó dinámicamente. En cualquier instante t, Pa > Pbsignifica que la ejecución de Ta es más importante que Tb; por tanto, Tb será retrasada en favor de Ta.Las prioridades pueden ser asignadas a las tareas en base al criterio de planificación Rate Monotonic (RM), DeadlineMonotonic (DM) ó Earliest Deadline First (EDF).
Stack Resource Policy (SRP)
37
Nivel de desalojoAdemás de su prioridad pi , una tarea Ti está caracterizada por un nivel de desalojo, πi. El nivel de desalojo es un parámetro estático, asignado a la tarea en el momento de su creación y asociado con todas las instancias de la tarea. La propiedad esencial de los niveles de desalojo es que una tarea Ta puede desalojar a otra tarea Tb sólo si πa > πb.Esto también es cierto para las prioridades. Por tanto, la razón de distinguir entre niveles de desalojo y prioridades es que los niveles de desalojo son valores fijos que se pueden usar para predecir bloqueos potenciales también en presencia de esquemas de prioridad dinámica.
pa < pb iff tb + Db < ta + Da (EDF)πa < πb iff Db < Da
Stack Resource Policy (SRP)
38
ra da
Da
Ta
rb db
Db
Tb
ra da
Da
Ta
rb db
Db
Tb
Da > Db πa < πbda > db pa < pb
Da > Db πa < πbda < db pa > pb
EDF
39
Se asigna a cada tarea un nivel de desalojo, πi, tanto mayor cuanto menor sea su plazo relativo Di (asignación DM)
Cada recurso R tiene un techo de prioridad dinámico, CR, que cambia con el número de réplicas, nR, disponibles
( ) { } { }[ ]RiRiRR nnC μπ <∪= :0max
Stack Resource Policy (SRP)
{ } { }[ ]iiR abloquearpuedeRC τπ :0max ∪=Para recursos con una sola instancia:
nº de unidades de R que necesita Ti
Si R está libre su CR es cero, mientras que si R está asignado, su techo es igual al mayor nivel de desalojo de las tareas que puedan hacer uso de R
40
El techo de prioridad del sistema , Π, se define como:
Una tarea se ejecuta sólo si:su prioridad es la más alta entre las tareas ejecutables, y πi > Π
Stack Resource Policy (SRP)
{ }RCmax=Π
41
Stack Resource Policy (SRP)
1τ
R1
R2
3τ
2τ
R3
3
1
1 1
2
1 1
3 1τ2τ3τ
Di πi1R
iμ 2Riμ 3R
iμ
10135312210113120
Ejemplo
Nivel de desalojo: asignación DM
Unidades de recursos que necesitan las tareas
42
3210
Stack Resource Policy (SRP)
1τ
R1
3τ2τ3 2 1 CR(3)
R1
CR(2) CR(1) CR(0)
Techo de prioridad dinámicodel recurso R con nR réplicas disponibles (no asignadas)1 32
( ) { } { }[ ]RiRiRR nnC μπ <∪= :0max
1Riμ
iπ
43
20--3210
Stack Resource Policy (SRP)
1τ
R2
3τ2τ1 1 CR(3)
R1
R2
CR(2) CR(1) CR(0)
Techo de prioridad dinámicodel recurso R con nR réplicas disponibles (no asignadas)1 32
( ) { } { }[ ]RiRiRR nnC μπ <∪= :0max
2Riμ
iπ
44
R3
322020--3210
Stack Resource Policy (SRP)
1τ 3τ2τ1 3 1 CR(3)
R1
R2
R3
CR(2) CR(1) CR(0)
Techo de prioridad dinámicodel recurso R con nR réplicas disponibles (no asignadas)1 32
( ) { } { }[ ]RiRiRR nnC μπ <∪= :0max
3Riμ
iπ
45
322020--3210
Stack Resource Policy (SRP)
1τ
R1
R2
3τ
2τ
R3
3
1
1 1
2
1 1
3CR(3)
R1
R2
R3
CR(2) CR(1) CR(0)
Techo de prioridad dinámicodel recurso R con nR réplicas disponibles (no asignadas)
π1=1
π3=3
π2=2
( ) { } { }[ ]RiRiRR nnC μπ <∪= :0max
46
Stack Resource Policy (SRP)
Propiedades
Si ninguna tarea puede arrancar hasta que Π < πi entonces:Ninguna tarea puede bloquearse después de arrancarNo hay bloqueos transitivos ni deadlockSi la tarea de máxima prioridad más antigua está bloqueada, se desbloqueará como muy tarde en el instante en que la tarea actualmente en ejecución deje de poseer recursos no desalojables
Un conjunto de n tareas es planificable bajo EDF si:
Bi : tiempo de ejecución de la sección crítica más larga de cualquier tarea tal que Di ≤ Dk para i != k
Ci : tiempo de ejecución de peor casoDi : plazo límite
kτ
11,...,1
≤+⎟⎟⎠
⎞⎜⎜⎝
⎛∀ ∑
==
k
kk
i i
i
nk DB
DCk
47
Sobrecargas. Estabilidad
48
Sobrecargas. Estabilidad
• En caso de sobrecarga, comportamiento impredecible:
• No se sabe qué tareas fallarán.• (No está claro ?) cual debe ser el algoritmo a emplear.
• Esto ocurre:
• Cuando se producen sobrecargas inesperadas.• Cuando las tareas llegan al sistema o terminan en cualquier instante.• Cuando los parámetros de las tareas cambian constantemente.
En el caso peor puede que no se cumpla ningún plazo.Considerar la importancia de las tareas.Que hacer ???.
49
Ejemplo
τ1
τ2
τ3
6 10 12 14 16 18
PT=D C U
τ 1 Alta6 2 0.333
τ 2 Media-alta10 4 0.400
τ 3 Media-baja12 3 0.250
2 4 8
τ 4 Baja15 4 0.270
20 22 24
τ4
Rate monotonic
Estable
50
Ejemplo
τ1
τ2
τ3
6 10 12 14 16 18
T=D C U
τ 1 6 2 0.333
τ 2 10 4 0.400
τ 3 12 3 0.250
2 4 8
τ 4 15 4 0.270
20 22 24
τ4
EDF
Inestable
51
Conclusiones
La planificación dinámica es:más flexible.necesaria en ciertos tipos de sistemas.permite contemplar diversos escenarios.importante sobrecarga en tiempo de ejecución.tratamiento de recursos compartidos costoso.no es estable.
Es un tema abierto de investigación.
52
Algoritmo MUF (Maximum-Urgency-First)
Urgencia:Criticidad (Prioridad estática).Prioridad Dinámica.Prioridad de Usuario.
Prioridad DinámicaCriticidad Usuario
c bits d bits u bits