TEMA 6

Transcripción

TEMA 6
TEMA 6
Planificación dinámica de tareas
1
„
„
Introducción.
Asignación dinámica de prioridades.
… Planificación
EDF
… Planificación LSF
„
Sobrecargas. Estabilidad.
2
Introducción
3
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.
4
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, . . . ).
„
„
„
5
Parámetros de planificación de tareas
„
Además de los parámetros ya definidos, se consideran:
…
…
…
E : Instante de inicio más temprano
RR : Uso de recursos.
V : valor: importancia relativa de la tarea:
Valor
Críticas
Firmes
Acríticas
Tiempo
6
Aspectos a considerar por el planificador
„
„
„
„
„
„
„
„
„
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.
7
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.
8
Fases de planificación
„
Análisis de planificabilidad
…
…
…
Se comprueba si las tareas cumplen sus plazos de respuesta.
Objetivo: maximizar el valor de las tareas correctas.
Dos enfoques:
„
„
…
Construcción del plan:
„
„
„
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.
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?.
9
Asignación dinámica
de prioridades
10
Asignación dinámica de prioridades
„
„
„
„
„
„
El objetivo es asignar prioridades en forma dinámica
a las tareas
Se 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)
11
Planificación Earliest Deadline First (EDF)
– 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
k
Ti
Tk
(no-EDF)
k
Tk
Tk
dk
di
dk
di
Ti
(EDF)
12
Planificación Earliest Deadline First (EDF)
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).
13
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:
N
U=∑
i =1
Ci
≤1
Ti
• 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).
14
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.
15
Ejemplo
τ1
τ2
τ3
T
D
C
U
30
30
10
0.333
40
40
10
0.250
50
50
12
0.240
El sistema cumple la prueba
de utilización (U < 1).
Con prioridades dinámicas
(planificación EDF) se
garantizan los plazos.
0.823
τ1
τ2
τ3
20
40
60
80
100
120
140
160
180
16
Ejemplo
τ1
τ2
τ3
T
D
C
U
R
30
30
10
0.333
10
40
40
10
0.250
20
50
50
12
0.240
52
Con prioridades fijas
(planificación rate monotonic)
no se garantizan los plazos.
0.823
τ1
τ2
τ3
20
40
60
80
100
120
140
160
180
17
Planificación Least Slack First (LSF)
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)
hk
Tk
ck
hk < hk
dk
hi
Ti
t
ci
di
pk > pk
18
Ejemplo
τ1
τ2
τ3
T
D
C
U
30
30
10
0.333
40
40
10
0.250
50
50
12
0.240
0.823
Híper período = 300
Con prioridades dinámicas
(planificación LSF) se
garantizan los plazos.
19
40
38
h3
35
30
30
h2
25
h1
20
20
τ3
τ2
τ1
15
10
idle
5
20
0
50
100
150
200
250
300
300
19.1
38
19.05
35
h3
19
30
30
18.95
h2
25
18.9
18.85
19.8
h1
20
20
19.85
19.9
19.95
20
20.05
20.1
20.15
20.2
τ153
τ2
τ101
idle
0
5
10
15
20
25
30
35
40
45
50
21
Ejemplo
τ1
τ2
τ3
T
D
C
U
11
11
3
0.2727
5
5
2
0.4000
8
8
2
0.2500
0.9227
Híper período = 440
Con prioridades dinámicas
(planificación LSF) se
garantizan los plazos.
22
8
h1
7
6
h3
5
4
h2
3
2
23
1
0
τ1
50
100
150
200
250
300
350
400
300
350
400
440
4
2
1.5
τ2
1
0.5
τ3
0
-0.5
idle-1
24
0
50
100
150
200
250
440
45
10
hi
9
8
7
6
5
4
3
2
1
0
25
0
5
10
15
20
25
Recursos compartidos
26
t
Recursos compartidos y bloqueos
„
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 deadline
má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.
27
Ejemplo
Pérdida de plazo límite
T1
5
14
T2
6
16
T3
0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20 21 22
Inversió
Inversión de prioridad
28
Recursos compartidos
„
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
29
T1
5
14
T2
6
16
T3
0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20 21 22
Herencia de prioridad diná
dinámica (DIP)
30
P0
Techo de
Prioridad
Diná
Dinámico
(DPCP)
>
T0
C(Si) Æ
P1
>
P2
T1
T2
S0
S1
S2
P0
P0
P1
S0
T0
T0 :
S0
T1 :
S2
T2 :
S2
S1
S2
anidada
S0
S1
S0
S1
S1
S2
T1
S1
S2
S2
S2
T2
S1
S2
S1
S2
S1
S2
S1
S2
PT2
P0
P1
P2
t0
t1
t2
t3
t4
t5
t6
t7
t8
t9
t10
t11
31
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:
„
n
∑
i =1
Ci + Bi
≤1
Ti
Bi : tiempo de bloqueo de peor caso
Ci : tiempo de ejecución de peor caso
Ti : periodo de la tarea
τi
32
Stack Resource Policy (SRP)
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 inversamente
proporcionales 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.
33
Stack Resource Policy (SRP)
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.
34
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.
35
Stack Resource Policy (SRP)
„
Prioridad
…
…
…
A 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 > Pb
significa 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), Deadline
Monotonic (DM) ó Earliest Deadline First (EDF).
36
Stack Resource Policy (SRP)
„
Nivel de desalojo
…
…
…
…
Ademá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
πa < πb
iff
iff
tb + Db < ta + Da
Db < Da
(EDF)
37
EDF
Da
Ta
ra
Da > Db Æ πa < πb
da > d b Æ p a < p b
da
Db
Tb
rb
db
Da
Ta
ra
Db
Da > Db Æ πa
da < d b Æ p a
da
Tb
rb
< πb
> pb
db
38
Stack Resource Policy (SRP)
„
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
[
{
CR (nR ) = max { 0 } ∪ π i : nR < μiR
}]
nº de unidades de R que necesita Ti
Para recursos con una sola instancia:
C R = max [{ 0 } ∪ {π i : R puede bloquear a τ i }]
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
39
Stack Resource Policy (SRP)
„
El techo de prioridad del sistema , Π, se define como:
Π = max {C R }
„
Una tarea se ejecuta sólo si:
… su prioridad es la más alta entre las tareas ejecutables,
y
… πi > Π
40
Stack Resource Policy (SRP)
Ejemplo
τ1
R2
1
1
1
2
3
Nivel de desalojo: asignación DM
τ2
τ1
3
R1
τ2
τ3
R3
1
τ3
Di
πi
μiR
μiR
20
10
5
1
2
3
3
2
1
1
1
0
1
1
2
μiR
3
1
3
1
Unidades de recursos
que necesitan las tareas
41
Stack Resource Policy (SRP)
C R (nR ) = max
πi
μ
R1
i
1
τ1
3
2
τ2
2
[{ 0 } ∪ {π
i
: nR < μiR
}]
Techo de prioridad dinámico
del recurso R con nR réplicas
disponibles (no asignadas)
3
τ3
1
R1
CR(3)
CR(2)
CR(1)
CR(0)
0
1
2
3
R1
42
Stack Resource Policy (SRP)
C R (nR ) = max
πi
μ
1
R2
i
τ1
1
2
τ2
[{ 0 } ∪ {π
: nR < μiR
}]
Techo de prioridad dinámico
del recurso R con nR réplicas
disponibles (no asignadas)
3
τ3
1
CR(3)
CR(2)
CR(1)
CR(0)
0
-
1
-
2
0
3
2
R1
R2
R2
i
43
Stack Resource Policy (SRP)
C R (nR ) = max
πi
μ
R3
i
1
τ1
1
2
τ2
3
R3
[{ 0 } ∪ {π
i
: nR < μiR
}]
Techo de prioridad dinámico
del recurso R con nR réplicas
disponibles (no asignadas)
3
τ3
1
R1
R2
R3
CR(3)
CR(2)
CR(1)
CR(0)
0
0
1
2
2
0
2
3
2
3
44
Stack Resource Policy (SRP)
C R (nR ) = max
π1=1
τ1
R2
1
1
1
2
3
τ2
R3
1
τ3
1
i
: nR < μiR
}]
Techo de prioridad dinámico
del recurso R con nR réplicas
disponibles (no asignadas)
π2=2
3
R1
[{ 0 } ∪ {π
CR(3)
CR(2)
CR(1)
CR(0)
0
0
1
2
2
0
2
3
2
3
R1
R2
R3
π3=3
45
Stack Resource Policy (SRP)
Propiedades
„
Si ninguna tarea puede arrancar hasta que Π < πi entonces:
…
…
…
„
Ninguna tarea puede bloquearse después de arrancar
No hay bloqueos transitivos ni deadlock
Si 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:
⎛ k Ci ⎞ Bk
⎜⎜ ∑ ⎟⎟ +
∀k
≤1
k =1,..., n
⎝ i =1 Di ⎠ Dk
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 caso
Di : plazo límite
τk
46
Sobrecargas.
Estabilidad
47
Sobrecargas. Estabilidad
•
En caso de sobrecarga, comportamiento impredecible:
•
•
•
Esto ocurre:
•
•
•
„
„
„
No se sabe qué tareas fallarán.
(No está claro ?) cual debe ser el algoritmo a emplear.
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 ???.
48
Ejemplo
τ1
τ2
τ3
τ4
T=D
C
U
P
6
2
0.333
Alta
10
4
0.400
Media-alta
12
3
0.250
Media-baja
15
4
0.270
Baja
Rate monotonic
ta
Es
b le
τ1
τ2
τ3
τ4
2
4
6
8
10
12
14
16
18
20
22
24
49
Ejemplo
τ1
τ2
τ3
τ4
T=D
C
U
6
2
0.333
10
4
0.400
12
3
0.250
15
4
0.270
EDF
I
ta b
s
e
n
le
τ1
τ2
τ3
τ4
2
4
6
8
10
12
14
16
18
20
22
24
50
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.
51
Algoritmo MUF (Maximum-Urgency-First)
„
Urgencia:
…
…
…
Criticidad (Prioridad estática).
Prioridad Dinámica.
Prioridad de Usuario.
Criticidad
Prioridad Dinámica
Usuario
c bits
d bits
u bits
52
Algoritmo MUF (Maximum-Urgency-First
τ1
τ2
τ3
τ4
Prioridad Criticidad
(RM)
(MUF)
T=D
C
U
6
2
0.333
Alta
Alta
10
4
0.400
Media-alta
Ata
12
3
0.250
Media-baja
Alta
Baja
Baja
15
4
0.270
ta
Es
b le
τ1
τ2
τ3
τ4
2
4
6
8
10
12
14
16
18
20
22
24
53
TEMA 6
Planificación dinámica de tareas
54

Documentos relacionados