TEMA 5 - eis.uva.esjossan/doct/cystr/fich/Tema5_x6.pdf · 1 1 TEMA 5 Planificación estática de...
Transcript of TEMA 5 - eis.uva.esjossan/doct/cystr/fich/Tema5_x6.pdf · 1 1 TEMA 5 Planificación estática de...
1
1
TEMA 5
Planificación estática de tareas
2
Planificación de tareasEl problema de la concurrenciaEl problema de la planificaciónPlanificación de tareas
Modelo básicoPlanificación rate monotonic
Teorema de Liu y LaylandAnálisis del tiempo de respuesta
Planificación deadline monotonic
Recursos compartidosHerencia de prioridadTecho de prioridad y techo de prioridad inmediato
3
Modelo de tareas generalizadoPlanificación cooperativaActivación irregular (jitter)Plazos arbitrarios
Extensión del modeloCambio de contextoCambio de modo
Tareas aperiódicasServidor en backgroundReserva de ancho de bandaExtracción de holgura
Tareas con restricciones de precedencia 4
Planificación de tareas
5
El mundo real es concurrente: ocurrencia simultánea de eventos.
Elementos• Procesadores.• Recursos y Tareas• Planificador y Gestor de Recursos (Sistema Operativo)
Problema• ¿ Qué tarea ejecutar, y cuándo ?• ¿ Cómo se asigna el acceso a los recursos compartidos ?• Problemas de concurrencia
El problema de la concurrencia
6
Fallo
OK
t+10t t+25t+20t+15t+5
e1
e2
t+10t t+25t+20t+15t+5
e1
e2
2
7
La planificación (scheduling) consiste en gestionar el uso de los recursos del sistema con el fin de garantizar los requisitos temporales de las tareas.
Cada tarea es planificada por un algoritmo de planificación, y los distintos recursos son asignados mediante un protocolo de acceso a los recursos.
El problema de la planificación
8
Un método de planificación tiene dos aspectos:
• Un algoritmo de planificación que determina el orden deacceso de la tareas a los recursos del sistema( en particular al procesador )
• Un método de análisis que permite calcular el comportamiento temporal del sistema.
Así se puede comprobar si los requisitos temporales están garantizados en todos los casos posibles.
En general se estudia el peor comportamientoposible.
9
Planificación vs. Planificabilidad
Planificación = enfoque para priorizar una tarea sobre otra.
Planificabilidad = análisis formal que permite garantizar que un conjunto de tareas pueden (o no) acceder a un recurso compartido (p.ej. el procesador) de tal forma que cada una de ellas cumpla con su plazo de respuesta.
Planificabilidad = Control de admisión
10
Planificador
Carga de Trabajode Tiempo Real
Análisis dePlanificabilidad
AplicaciónTiempo RealAplicaciAplicacióónn
Tiempo RealTiempo Real
No es planificableNo es planificableNo es planificable
Tarea
EJECUCIÓNCiTiDi
Proceso de planificación
Fuera de línea (off-line) En línea (on-line)
11
activacióntest de
aceptaciónLISTA
BLOQUEO
EJECUCION
despachar
expulsión
espera enrecurso ocupado
recurso liberado
SI
NO
Estados y decisiones de planificación
Proceso de planificación
12
Un método de planificación puede ser:
• estático: el análisis puede realizarse antes de la ejecución.
• dinámico: se utilizan decisiones tomadas durante la ejecución.
Método deplanificación
Ejecutivocíclico
Basado enprioridades
Fijas Dinámicas
Planificación de tareas
3
13
Planificación con prioridades fijas
Las tareas se ejecutan como procesos concurrentes.Una tarea puede estar en varios estadosLas tareas ejecutables se despachan para su ejecución en orden de prioridad.El despacho puede hacerse
– sin desalojo– con desalojo
En adelante vamos a considerar planificación con prioridades fijas y desalojo (preemptive priority based schemes):
a cada proceso se le asigna una prioridad y en cada instante se a cada proceso se le asigna una prioridad y en cada instante se ejecuta el proceso con mayor prioridadejecuta el proceso con mayor prioridad
Necesitamos un algoritmo de asignación de prioridades y una prueba de planificabilidad. 14
Planificación con prioridades fijas:Modelo básico
15
El conjunto de tareas es estático.Todas las tareas son periódicas.Las tareas son independientes entre sí (a no ser que se diga lo contrario).Las operaciones del núcleo del sistema son instantáneas(por ejemplo los cambios de contexto, interrupciones, etc..).El tiempo de cómputo máximo de cada tarea es conocido.Los plazos de respuesta de todas las tareas son iguales a los periodos respectivos.
Modelo de tareas
16
N Número de tareas.Ci Tiempo de ejecución (peor caso) de la tarea i.Ti Período de la tarea i.Di Plazo de finalización (“deadline”) de la tarea i.
Pi Prioridad de la tarea i.Ri Tiempo de respuesta (máximo) de la tarea i.
El El objetivo finalobjetivo final consiste en asegurar que, para consiste en asegurar que, para todas las tareas, se cumple:todas las tareas, se cumple:
Ci ≤ Ri ≤ Di = Ti
Notación
17
Es una medida de la carga del procesador.El factor de utilización de una tarea Ti es:
El factor de utilización total del sistema es
Se trata de encontrar métodos que proporcionen planificaciones admisibles con factores de utilización lo más altos posible.Con un procesador: U ≤ 1En general para M procesadores: U ≤ M
i
ii T
CU =
∑∑==
==n
i i
in
ii T
CUU11
Factor de utilización
18
Consideraremos prioridades estáticas y planificación expulsiva.
Frecuentemente se asignan prioridades a las tareas según su "importancia". C T U
T1
T2
10 50 0.20
2 10 0.20
0.40
Fallo
100 20
T1
T2
+
-
Planificación basada en prioridades
4
19
Prioridades monótonas en frecuencia (rate monotonic)
La asignación de mayor prioridad a las tareas de menor período (rate monotonic scheduling) es óptima para el modelo de tareas simple(tareas periódicas, independientes, con plazos iguales a los períodos)
Si se pueden garantizar los plazos de un sistema de tareas con otra asignación de prioridades, se pueden garantizar con la asignación monótoma en frecuencia
20
Para el modelo simple, con asignación de prioridades monótonas en frecuencia, los plazos están garantizados si:
U0(n) es la utilización mínima garantizada para n tareas
)()12( 0/1
1
nUnTCU n
n
i i
i =−≤=∑=
693.02ln)(0 ≈=∞→
nUlimn
U0(1)=1.000
U0(2)=0.828
U0(3)=0.779
U0(4)=0.757
U0(5)=0.743...
Condición de garantía de plazos basada en la utilización (Liu y Layland)
21
Para el modelo básico de tareas, la asignación de prioridades rate monotonic es óptima (Liu & Layland, 1973).
C T U
T1
T2
10 50 0.20
2 10 0.20
0.40
100 20
T1
T2
-
+
Planificación basada en prioridades monótonas en frecuencia (rate monotonic)
22
El cronograma se puede utilizar para comprobar si se cumplen los plazos
Hay que trazar el cronograma durante un hiperperíodo completoEn caso más desfavorable, H = O( NN )
El tiempo de respuesta es máximo cuando todas las tareas se activan a la vezSe denominan instante crinstante crííticoticoSi el instante inicial es crítico basta comprobar la primera instancia de cada tarea. No es necesario analizar todo el hiperperiodo (Liu & Layland 1973Liu & Layland 1973)
Instante crítico
23400 100806020
T3
T2
T1
T=D C U
U = 0.823 > 0.779 = U0
P
T1 30 10 0.333 Alta
T2 40 10 0.250 Media
BajaT3 50 12 0.240
Fallo
Ejemplo 1
24400 100806020
T3
T2
T1
T=D C U
U = 0.775 < 0.779 = U0
P
T1 16 4 0.250 Alta
T2 40 5 0.125 Media
BajaT3 80 32 0.400
Ejemplo 2
5
25400 100806020
T3
T2
T1
T=D C U
U = 1.000 > 0.779 = U0
P
T1 20 5 0.250 Alta
T2 40 10 0.250 Media
BajaT3 80 40 0.500
Ejemplo 3
26
Análisis del tiempo de respuesta
La prueba del factor de utilización• no es exacta. • no se puede generalizar a modelos de tareas más
complejos.
La construcción de un cronograma es compleja, incluso considerando que el instante inicial es crítico.
Veremos una prueba basada en el cálculo del tiempotiempode respuestade respuesta de cada tarea.
27
Dos componentes:• CCii : Tiempo de ejecución, en el peor caso, de la tarea i.• IIii : Interferencia que puede sufrir la tarea i por tareas de
prioridad superior.
Tj
Ti
Ri = Ci + Ii
Ecuación del tiempo de respuesta
28
Cálculo de la interferencia máxima
Tj
Ti
Ri
Cj Cj Cj
Para una tarea j de prioridad superior a i j
j
iji C
TRI ⋅
⎥⎥⎥
⎤
⎢⎢⎢
⎡=
jihpj j
ii C
TRI ⋅
⎥⎥⎥
⎤
⎢⎢⎢
⎡= ∑
∈ )(
Para todas las tareas de prioridad superior a i
29
Cálculo del tiempo de respuesta
Ecuación del tiempo de respuesta:
jihpj j
iii C
TRCR ⋅⎥⎥⎥
⎤
⎢⎢⎢
⎡+= ∑
∈ )(
• No es continua ni lineal.• No se puede resolver analíticamente.
jihpj j
i CTwCw ⋅⎥⎥⎥
⎤
⎢⎢⎢
⎡+= ∑
∈ )(
Ri es la solución mínima de la ecuación:
30
Resolución mediante la relacirelacióón de recurrencian de recurrencia:
• win+1 = wi
n, (se cumple el plazo), o bien• wi
n+1 > Ti (no se cumple el plazo).
Valor inicial:
jihpj j
ni
ini C
TwCw ⋅
⎥⎥⎥
⎤
⎢⎢⎢
⎡+= ∑
∈
+
)(
1
Se termina cuando:
• wi0 = 0
• wi0 = Ci
• ∑∈
+=)(
0
ihpjjii CCw
Cálculo del tiempo de respuesta
6
T=D C
T1 52 12
T2 40 10
P
Baja
Media
AltaT3 30 10
52
20
10
R 10303 == Cw
2010103202 =+=+= CCw
201010203
32
12 =+=⎥
⎥
⎤⎢⎢
⎡+= C
TCw
3210101232101 =++=++= CCCw
42102101232323
32
21
11 =×++=⎥
⎥
⎤⎢⎢
⎡+⎥
⎥
⎤⎢⎢
⎡+= C
TC
TCw
521021021242423
32
21
21 =×+×+=⎥
⎥
⎤⎢⎢
⎡+⎥
⎥
⎤⎢⎢
⎡+= C
TC
TCw
521021021252523
32
21
31 =×+×+=⎥
⎥
⎤⎢⎢
⎡+⎥
⎥
⎤⎢⎢
⎡+= C
TC
TCw
32
• Da una condición suficientesuficiente y necesarianecesaria:
Si un conjunto de tareas pasa el test de planificabilidad,se cumplirán sus plazos. En caso contrario, alguna deellas (las de menor prioridad) perderá su plazo.
Análisis del tiempo de respuesta
33
Tareas aperiódicas y esporádicas
Responden a eventos aseventos asííncronosncronos.
• Estrictas (hard) o esporesporáádicasdicas• frecuencias de activación mmááximasximas.
• No estrictas (soft)• frecuencias de activación medias.
34
Analizar la planificabilidad con tiempos en el peor caso podría llevar a utilizaciones muy bajas del procesador.
Garantizar requisitos mínimos:
– TodasTodas las tareas deben ser planificablesplanificables usando tiempos de ejecución y frecuencias de llegada mediosmedios
⇒ pueden perderse algunos plazos.– TodasTodas las tareas hardhard deben ser planificablesplanificables usando tiempos de
ejecución y frecuencias de llegada en el peor caso⇒ asegurar los plazos de estas tareas.
35
Tareas esporádicas
Para incluir tareas esporesporáádicasdicas hay que modificar el modelo básico de tareas:
•• TT : separación mínima entre eventos de activación consecutivos.
•• D D ≤≤ TT• asignación de prioridades:
• monmonóótona en plazostona en plazos ((Deadline monotonicDeadline monotonic))
36
•• óóptimaptima.• análisis del tiempo de respuesta:
• igual que en la asignación monótona en frecuencia• se termina cuando:
• win+1 = wi
n, (se cumple el plazo), o• wi
n+1 > Di (no se cumple el plazo).
Prioridades monótonas en plazos(deadline monotonic)
7
P
4
3
2
1
33
66
1010
2020
RR
T1
T2
T3
T4
T
20
15
10
20
C
3
3
4
3
D
5
7
10
20
P
4
3
2
1
44
77
1010
2020
RR
Monótona en plazos
deadline monotonic
T3
T2
T1
T4
T
10
15
20
20
C
4
3
3
3
D
10
7
5
20
Monótona en frecuencia
rate monotonic
Ejemplo 5
38
Recursos compartidos
39
Interacción entre tareas y bloqueos
• En la mayoría de los sistemas de interés práctico las tareas interaccionan mediante
– datos comunes (protegidos)– citas o mensajes
• En todos estos casos puede ocurrir que una tarea tenga que esperar un suceso de otra menos prioritaria
• Esta situación se denomina bloqueobloqueo, y puede producir una inversiinversióón de prioridadn de prioridad indeseable
• La inversión de prioridad consiste en que una tarea con una prioridad intermedia puede “colarse” a una tarea más prioritaria que está bloqueada a la espera de un recurso que tiene ocupado otra tarea de baja prioridad
t+2 t+254t+253t
T3
t+3
T2
T1
InversiInversióón de prioridadn de prioridad
Ejemplo
BLOQUEO
Y
Y
X
X Y
Y
X
Ejemplo AccionesP ta
T1 NNXYN4 4
T2 NYYN3 2NNT3 2 2
NXXXXNT4 2 0
0
T4
2 4 6 8 10 12 14 16 18
T3
T2
T1X
X Y
T1 T2 T3 T4
42
Interacción entre tareas y bloqueos
OJO: el bloqueo de una tarea más prioritaria por parte de otra menos prioritaria porque ésta tiene un recurso, no es el problema de inversión de prioridad, sino el retardo inducido por tareas de prioridad intermedia
Los métodos propuestos para solucionar este problema se pueden clasificar en tres grandes grupos:
EVITAR: Ordenar la ejecución de todas las tareas (off-line) con el fin de evitar que se produzcan estas situaciones (planificación cíclica)
IGNORAR: Tratamos a todas las secciones críticas como bloques ininterrumpibles; y hacemos que todas las secciones críticas sean lo más breves posible.
MINIMIZAR: Modificar (temporalmente) la prioridad de las tareas que entren en una sección crítica para que finalicen lo antes posible.
Priority Inheritance Protocol (PIP) (herencia de prioridades)
Priority Ceiling Protocol (PCP) (techo de prioridades)
Inmediate Priority Ceiling Protocol (IPCP)
8
43
Herencia de prioridad
El retraso que sufre una tarea por inversión de prioridad puede noestar acotado, lo que compromete la planificabilidad del sistema.
• Es necesario acotar acotar y medirmedir los bloqueos.
Una forma de reducir la duración de los bloqueos es variar dindináámicamentemicamente la prioridad de las tareas:
• Cuando una tarea está bloqueando a otra más prioritaria, heredahereda la prioridad de ésta.
• La prioridad dinámica de una tarea es el máximo entre:– su prioridad básica– las prioridades de todas las tareas a las que bloquea.
• La herencia de prioridad es transitiva.transitiva.
t+2 t+6t+4t
T3
t+3
T2
T1
Herencia de prioridadHerencia de prioridad
Ejemplo
BLOQUEOS
Y
Y
X
X Y
Y
X
Ejemplo AccionesP ta
T1 NNXYN4 4
T2 NYYN3 2NNT3 2 2
NXXXXNT4 2 0
0
T4
2 4 6 8 10 12 14 16 18
T3
T2
T1X
X Y
T1 T2 T3 T4
1 1 2 4
46
• Una tarea puede bloquearse por recursos a los que no accede (T2).
• Una tarea puede sufrir bloqueo aunque no acceda a recursos compartidos (T3).
• La tarea de menor prioridad no sufre bloqueo (T4).• una tarea se puede bloquear como máximo:
– una vez por cada recurso– una vez por cada tarea de prioridad inferior
•• Puede haber Puede haber interbloqueos no acotadosinterbloqueos no acotados entre tareasentre tareas.
Propiedades:
Herencia de prioridad
47
Herencia de prioridad
• Si no hay interbloqueos, la duraciduracióón total mn total mááximaxima de losbloqueos que sufre una tarea ii es:
donde• KK es el número de secciones críticas• u(k,i) = 1 si el recurso k es usado por al menos una tarea con
prioridad menor que Pi , y por al menos una tarea con prioridad mayor o igual que Pi
0 en caso contrario• CCkk es el tiempo de ejecución (WCET) de la sección crítica k
)(),(1
kCikuBK
ki ∑=
=
48
Herencia de prioridad• Si hay n tareas de prioridad inferior que pueden bloquear a la
tarea Ti, entonces ésta se puede bloquear como mucho la duración de n secciones críticas (una por cada una de las n tareas de prioridad inferior), independientemente del número de recursos a los que acceda Ti.
• Si hay m recursos diferentes que pueden bloquear a la tarea Ti, entonces ésta se puede bloquear como mucho la duración de msecciones críticas, una por cada uno de los recursos.
• Bajo el protocolo de herencia de prioridad, una tarea Ti puede ser bloqueada como mucho la duración de min(n, m) secciones críticas, donde n es el número de tareas de prioridad inferior que podrían bloquear a la tarea Ti , y m es el número de recursos diferentes que pueden ser usados para bloquear Ti
9
XT3 Y
----
T3
T4
YX
T2
XYYX
T1
T4T2
Cálculo del bloqueo
Ejemplo 1X Y
T1 T2 T3 T4
1 1 2 4
2 + 4
4
Y=2 X=4
X=4
X=4 44
0
4
6
Bi
T1 T2 T3 T4
YX Z
Ejemplo 2
1 2 9 3 8 7 6 5 4
T1 T2 T3 T4
YX Z
1 2 9 3 8 7 6 5 4
XZYZXYYZX
YXZY
YT3
XZ
ZX
T1
T4T2
Cálculo del bloqueo
5
9+8X=8
8+5
17
B1
X=6
X=8
X=6
Y=7
Y=9
Y=9
Y=5
Y=5
Y=7
9+6
7+6
7
La tarea de baja prioridad no accede al recurso
No hay bloqueo directo ni indirecto por acceso al recurso
T1 T2 T3 T4
YX Z
1 2 9 3 8 7 6 5 4
ZYXYZX
T2
XZZ
XT3
Y
YT4
Cálculo del bloqueo
8+4
7+6
6
13
B2
Y=5
7+4
5
8+5
La tarea de baja prioridad no accede al recurso
Y=5
Y=7
Y=7
X=8
X=8
X=6
X=6
Z=4
Z=4
T1 T2 T3 T4
YX Z
1 2 9 3 8 7 6 5 4
XZT3
T4
YT4
Cálculo del bloqueo
5
4
6
0
Bi
X=6 6
Z=4
Y=5
54
Ecuación del tiempo de respuestatiempo de respuesta:
∑∈ ⎥
⎥⎥
⎤
⎢⎢⎢
⎡++=++=
)(ihpjj
j
iiiiiii C
TRBCIBCR
∑∈
+
⎥⎥⎥
⎤
⎢⎢⎢
⎡++=++=
)(
1
ihpjj
j
ni
iiiiini C
TwBCIBCw
La solución se obtiene mediante la relacirelacióón de recurrencian de recurrencia:
Herencia de prioridad
10
55
Es un protocolo de herencia de prioridades con las siguientes reglas adicionales:
El techo de prioridad de un recurso es igual a la prioridad de la tarea más prioritaria que haga uso de él.La prioridad dinámica de una tarea es el máximo entre
su prioridad básica, y las prioridades de las tareas a las que bloquea.
Una tarea sólo puede acceder a un recurso si su prioridad dinámica es mayor que el techo de todos los recursos actualmente en uso por otras tareas.Las secciones críticas deben tratarse de forma piramidal.
Techo de prioridad
56
Protocolo libre de interbloqueos.Bloqueo único: una tarea es retardada como mucho una vez por una tarea de prioridad inferior.El retardo es función del tiempo de ejecución de una sección crítica.
Propiedades:
Techo de prioridad
57
Techo de prioridad• La duraciduracióón total mn total mááximaxima de los bloqueos que sufre una tarea ii es:
skiprisceilksemsilpkski scmaxB ,)}()()()(|,{ ≥∧∈∧∈=
La mayor sección crítica en que retenemos a los recursos corresponde a la duración máxima del bloqueo.
Tareas
(prioridad)
Recursos (techo de prioridad)
ii
++
++--
-- ii
t0
T3
T2
T1
Techo de prioridadTecho de prioridad
T1
T2
P
Alta
Media
BajaT3
T
50
500
3000
C
5
250
1000
D
10
500
3000
s1 s1
s2 s3 s3 s2
s3 s2 s2 s3
s3
t1 t2 t4 t5 t6 t7 t8t3
s2
s2 s2s3
s3 s3 s2
s1 s1
Ejemplo
59
Una tarea que accede a un recurso hereda inmediatamente el techo de prioridad del recurso.
Las propiedades son las mismas que las del protocolo del techo de prioridad
Bloqueo único al activarse una tarea.Es más fácil de implementar que el protocolo básicoEs más eficiente (menos cambios de contexto)Se producen más bloqueos que en el caso del protocolo de techo de prioridad
Comportamiento idéntico de peor casoPeor comportamiento medio
Techo de prioridad inmediato
t0
T3
T2
T1
Techo de prioridad inmediatoTecho de prioridad inmediato
T1
T2
P
Alta
Media
BajaT3
T
50
500
3000
C
5
250
1000
D
10
500
3000
s1 s1
s2 s3 s3 s2
s3 s2 s2 s3
s3
t1 t2 t4 t5 t6 t7 t8t3
s2
s2 s2s3
s3 s3 s2
s1 s1
Ejemplo
11
61
Modelo de tareas generalizado
62
Modelo de tareas generalizado
El modelo de tareas básico que hemos visto incluye :
tareas periódicas y esporádicasplazos menores o iguales que los períodosinteracción mediante secciones críticas
El análisis del tiempo de respuesta se puede extender con
planificación cooperativavariación (jitter) en el esquema de activaciónplazos arbitrarios (también mayores que los períodos)
63
Planificación cooperativa
La planificación por desalojo (preemptive) no siempre es aceptable en sistemas críticos
Las tareas se pueden bloquear por el sistema de ejecución o por el núcleo del sistema operativo (ej. cambios de contexto)Con el protocolo del techo de prioridad inmediato lo bloqueos nose acumulan (no puede ser bloqueado a la vez por un proceso de aplicación y por una rutina del núcleo)
La planificación cooperativa o diferida divide las tareas en bloques no desalojables
Si BMAX es el bloqueo máximo por recursos, se divide el código de las tareas en bloques no desalojables de duración BMAX
Al final de cada bloque se ofrece un cambio de contexto (si hay alguna tarea más prioritaria)Las secciones críticas se meten dentro de un solo bloque
La exclusión mutua se consigue sin desalojo 64
Planificación cooperativa
VentajasIncrementa la planificabilidad del sistema y se pueden reducir los tiempos de cómputo C, pues no se producen interferencias durante la ejecución del último bloque.Los tiempos de cómputo de los bloqueos son más fáciles de calcular y con mayor precisión pues los procesadores modernos tienen cachés, pipeline, etc., que reducen significativamente los tiempos de ejecución del código lineal, cuyas estimaciones simples del peor caso del tiempo de ejecución dan unos resultados muy pesimistas.
65
Planificación cooperativa
Sea el tiempo de cómputo del último bloque
Cuando el tiempo de respuestaviene dado por:
iF
jihpj
j
ni
iiMAXni C
TwFCBw ∑ ⎥
⎥
⎤⎢⎢
⎡+−+=
∈
+
)(
1
1+= ni
ni ww
inii FwR +=
66
Activación irregular (jitter)
En el modelo simple se supone que todos los procesos son periódicos y van a ser activados con una periodicidad perfecta. Los esporádicos se incorporan al modelo suponiendo un intervalo mínimo, S, entre llegadas. Sin embargo, esto no es realista, sobre todo en sistemas distribuidos.
Jitter (fluctuación): valor máximo de la variación en la activación de un proceso.
12
67
PP : Tarea periódica ejecutada en un procesador ASS : Tarea esporádica ejecutada en un procesador B remoto y activada
por un evento generado por P.Caso ideal : TS = TP
P
S
Activación irregular (jitter)
TP
TS
CP CP
68
Ahora las dos activaciones del proceso esporádico no están separadas por TP sino por TP - RPLa tarea esporádica S sufre una variación en su activación. El valor máximo de la fluctuación se denomina jitter.
P
S
Activación irregular (jitter)
TP
TP - RP
RP
69
Activación irregular (jitter)
TP = 20, RP = 15, CP(mínimo) = 1
Separación teórica entre activaciones de S : TS = TP = 20Separación mínima entre activaciones de S : TS = 6
Fluctuación máxima (jitter) : JS = 20 - 6 = 14
P
S
t
t+15
t+20
t+21
70
Activación irregular (jitter)
P
S
t
t+15
t+20
t+21
0 T-J 2T-J0 6 26
Una tarea i de prioridad inferior a S tendrá 1, 2, 3, … interferencias de Sdependiendo de su tiempo de respuesta, Ri
i1
32
71
Activación irregular (jitter)
St+15 t+21
0 T-J 2T-J0 6 26
Sin jitterRi
(0, TS ] 1(TS, 2TS ] 2(2TS, 3TS ] 3
. .
. .
. .
i1
32
3T-J46
⎥⎥
⎤⎢⎢
⎡
S
i
TR
⎥⎥
⎤⎢⎢
⎡ +
S
Si
TJR
Con jitterRi
(0, TS-JS ] 1(TS-JS, 2TS-JS ] 2(2TS-JS, 3TS-JS ] 3
. .
. .
. .
Número de activaciones de S = nº de interferencias de S sobre i 72
Activación irregular (jitter)
La tarea esporádica S es activada en los instantes 0, 6, 26, 46, etc. 0, T-J, 2T-J, 3T-J,...
El examen de la ecuación de planificabilidad implica que el proceso i de menor prioridad que S sufrirá:
una interferencia del proceso S si :dos interferencias si :tres interferencias si :
Esto puede representarse en las ecuaciones de tiempo de respuesta como:
),0[ JTRi −∈)2,[ JTJTRi −−∈)3,2[ JTJTRi −−∈
jihpj
j
jiiii C
TJR
BCR ∑ ⎥⎥
⎤⎢⎢
⎡ +++=
∈ )(
13
73
Activación irregular (jitter)
Tareas periódicas con jitter:Las tareas periódicas no suelen tener jitter. Puede haberlo si la planificación se hace con una granularidad apreciable. El tiempo de respuesta se calcula como:
iiperiodica
i JRR +=
jihpj
j
jiiii C
TJR
BCR ∑ ⎥⎥
⎤⎢⎢
⎡ +++=
∈ )(
74
Plazos arbitrarios
Si el plazo es mayor que el período, puede haber varias activaciones pendientes en un ciclo:
D ( y potencialmente R) > TPara analizar esta situación construimos una sucesión de ventanas Wi (q), donde q +1 es el número de activaciones de τi.Para cada ventana se obtiene un Ri con
jihpj j
ni
iini C
TqwCqBqw ∑
∈
+⎥⎥
⎤⎢⎢
⎡+++=
)(
1 )()1()(
inii qTqwqR −= )()(
75
Plazos arbitrarios
El número de activaciones está limitado por el menor valor de q para el que la siguiente expresión es cierta:
El tiempo de respuesta de peor caso es el valor máximo que se obtiene para cada q:
)(max,...2,1,0
qRR iqi ==
ii TqR ≤)(
76
Plazos arbitrarios
800 18012040 10020 16014060 9010 19013050 11030 20017015070
T1
T2
P
Alta
Media
BajaT3
T
16
40
50
C
4
5
30
D
16
40
200
Ejemplo
T3
T2
T1
56 53 50
w3(1)
w3(2)
w3(3)
56
4
9
R
77
Caso general
Cuando se tienen plazos arbitrarios combinados con el efecto de jitter de activación deben realizarse dos alteraciones en el análisis anterior:
Primero, el factor de interferencia debe ser incrementado si existen procesos de prioridad superior que sufren jitter de activación:
El otro cambio involucra al proceso en sí mismo. Puede sufrir jitterde activación cuando dos ventanas consecutivas pueden solaparse si el tiempo de respuesta más el jitter es mayor que el periodo:
jihpj j
jni
iini C
TJqw
CqBqw ∑∈
+
⎥⎥⎥
⎤
⎢⎢⎢
⎡ ++++=
)(
1 )()1()(
iinii JqTqwqR +−= )()(
78
Extensión del modelo
14
79
Extensión del modelo
Para que este algoritmo de planificación sea útil necesitamos calcular con precisión la utilización o el tiempo de respuesta de las tareas.El modelo de tareas simple consideraba:
• Conjunto de tareas estático.• Todas las tareas son periódicas.• Las tareas son independientes unas de otras.• Los plazos de respuesta de las tareas son iguales a sus periodos.
• El tiempo de ejecución máximo de cada tarea es conocido.• Las operaciones del núcleo (planificador, despachador) son instantáneas.
80
Extensión del modelo
Este esquema se ha ampliado, considerando:• Recursos compartidos, comunicación y sincronización entre tareas.
• Variación en el esquema de activación de las tareas (jitter)Se puede mejorar el análisis si al modelo de tareas se le incluyen:
• Sobrecargas del planificador (cambios de contexto)• Cambios de prioridades durante la ejecución (cambios de modo)
• Otras limitaciones del entorno de ejecución (procesos no totalmente interrumpibles).
• Tareas aperiódicas. • Servidores de tareas aperiódicas• Tareas con restricciones de precedencia
81
Cambio de contexto
Hasta ahora habíamos supuesto que los cambios de contexto no consumen tiempo. Pero la realidad es muy distinta. En los actuales procesadores RISC, que cuentan con un gran número de registros, el tiempo de salvar todos estos registros en memoria principal y recargar los registros de otra tarea para continuar con su ejecución no es despreciable.
Si estudiamos en detalle cómo se producen los cambios de contexto veremos que podremos acotar el tiempo que cualquier tarea pierde en estos menesteres.
82
Cambio de contexto
+prio
-prioCsw Csw
Cj + 2Csw
Tj
Ti
Cj
83
Cambio de contexto
Cada vez que una tarea de más prioridad se activa (suponemos que en esos momentos está en ejecución otra de menor prioridad) ha de expulsar a la menos prioritaria (lo que implica suspender la menos prioritaria y activar la nueva tarea); y al finalizar la ejecución hay que reponer la ejecución de la tarea interrumpida (eliminando la más prioritaria y reponiendo la tarea anterior). Es importante notar que no se producen más cambios de contexto (si suponemos que no hay más activaciones).
Los dos cambios de contexto han sido forzados por la tarea más prioritaria, por lo que podemos considerar este tiempo como tiempo de cómputo de ésta. Así, la tarea menos prioritaria puede no tener en cuenta los tiempos de cambio de contexto producidos por tareas más prioritarias.
84
Cambio de contexto
El test de planificabilidad no se ve alterado por los cambios decontexto si modificamos los tiempos de cómputo de todas las tareas con dos veces el tiempo de cambio de contexto.
A la tarea menos prioritaria si bien no puede provocar expulsiones a otras tareas, también hay que añadirle los tiempos de cambio de contexto pues en realidad sí que expulsa a otra tarea: la tarea idle. Ésta es una tarea comodín utilizada en casi todas las implementaciones de sistemas operativos para simplificar el código del planificador.
∑∈
+⎥⎥
⎤⎢⎢
⎡ ++++=
)()2(2
ihpjswj
j
jiiswii CC
TJR
BCCR
15
85
En muchas aplicaciones el conjunto de tareas y sus características no son fijas. Las condiciones del entorno exterior provocan cambios en la funcionalidad requerida.
Modo de ejecución : Conjunto de tareas con perfiles de ejecución determinados.
Un cambio de modo implica:•Parar y/o arrancar algunas tareas.•Modificar los parámetros de algunas tareas
Cambio de modo
86
τ1
τ1’
τ2
idle
655 7010 15 20 25 30 35 40 45 50 55 60
Petición de cambio de modo
C T=D C
UA = 0.964
T=D
τ1,1’ 2 7 6 24
τ 2 40 59 40 59
UB = 0.928
Modo A Modo B
Petición de cambio de modo: t = 8
87
τ1
τ1’
τ2
idle
655 7010 15 20 25 30 35 40 45 50 55 60
Petición de cambio de modo
C T=D C
UA = 0.964
T=D
τ1,1’ 2 7 6 24
τ 2 40 59 40 59
UB = 0.928
Modo A Modo B
Petición de cambio de modo: t = 22
Pierde el deadline
88
Los requisitos del protocolo de cambio de modo son:
•No interferencia con la planificabilidad de las tareas en ejecución.
•Continuidad en la ejecución de las tareas que no cambian. Debe permitir añadir nuevas tareas sin afectar a las ya existentes. Las tareas deben cumplir sus límites antes, durante y después del protocolo.
•Terminación controlada de las tareas. No abortarlas.•Acotación del tiempo de cambio de modo.•Prestaciones: el protocolo debe ser tan eficiente como
los protocolos de cambio de modo para los ejecutivos cíclicos.
Cambio de modo
89
Existe un:• Antes: modo antiguo, con un modelo de tareas y
recursos.• Durante: protocolo de cambio de modo• Después: nuevo modo, con un modelo diferente de
tareas y recursos.
Período ocioso: Intervalo de tiempo en el que no hay ninguna tarea de tiempo real lista para ejecutar.
Este intervalo cumple las siguientes propiedades:• Las tareas que ejecutan antes del período ocioso no
afectan a las que ejecutan después.
El sistema puede cambiar de modo en un período ocioso.
Cambio de modo
90
La incorporación o eliminación de tareas puede cambiar los techos de prioridad de los recursos, por lo que:
• Si es necesario aumentar el techo de un recurso no bloqueado, semodifica directamente.
• Si el recurso está bloqueado hay que esperar a que sea desbloqueado• Si es necesario bajar el techo de un recurso, hay que esperar a que
todas las tareas que lo comparten y tengan prioridades mayores sean eliminadas.
• Si la prioridad de una tarea es mayor que los techos de los recursos bloqueados que ella también puede bloquear, los techos deben ser elevados antes de añadir la nueva tarea
• Una tarea puede ser eliminada en un hiperperiodo si aún no ha empezado su ejecución. En caso contrario hay que esperar al siguiente.
• El tiempo de procesador libre puede ser utilizado por otras tareas inmediatamente en el mismo hiperperiodo.
• Una tarea puede ser añadida sólo si queda capacidad de proceso disponible en el hiperperiodo.
Cambio de modo
16
91
Modo 1 Modo 2Tarea T C B P D R T C B P D Rτ1 15 2 3 3 8 5 15 2 3 3 8 5τ2 10 2 3 2 10 7 30 8 3 1 30 27τ3 30 8 3 1 25 19 --- --- --- --- --- ---τ4 --- --- --- --- --- --- 10 4 3 2 10 9
τ1
τ2
τ3
τ4
CM
655 7010 15 20 25 30 35 40 45 50 55 60
Petición de cambio de modo
Periodo ociosoCambio
de modo
Cambio de modo
92
Propiedades del protocolo de cambio de modo:
•El retardo máximo en cambiar de modo coincide con el tiempo de respuesta de la tarea menos prioritaria.
Cambio de modo
93
Una suposición que se ha hecho y que en ocasiones no se cumple totalmente es la de que los procesos pueden ser interrumpidos (desalojados) en cualquier instante.
Normalmente, incluso en los entornos de ejecución definidos como totalmente interrumpibles (preemptive), existen bloques que no pueden ser interrumpidos (por ejemplo un cambio de contexto).
Esto puede ser solventado incluyendo en el factor de bloqueo Bi los bloques no interrumpibles.
Procesos no totalmente interrumpibles
94
Tareas aperiódicas
95
Requisitos de la mayoría de las aplicaciones de tiempo real:• tareas periódicas y aperiódicas• generalmente las tareas periódicas son dirigidas por tiempo, y son de
tiempo real estricto (hard real-time)• generalmente las tareas aperiódicas son dirigidas por eventos, y
pueden ser de tiempo real estricto (hard real-time) y no estricto (soft real-time)
Objetivo principal de los núcleos de tiempo real:• garantizar las tareas de tiempo real estricto.• proporcionar un buen tiempo de respuesta medio para tareas de
tiempo real no estricto.
Las tareas aperiódicas que se caracterizan por un intervalo mínimo entre eventos se denominan tareas esporádicas.
Las tareas aperiódicas que requieren una garantía on-line en cada instancia individual se denominan firmes.
Tareas aperiódicas
96
Tareas aperiódicas
CPU
test deaceptación
rechazo
tareas esporádicas
tareas periódicas
tareas aperiódicas
Dado un conjunto de tareas periódicas, ¿Cómo deben planificarse las tareas aperiódicas?Objetivos:
todas las tareas periódicas cumplen sus plazosse tiene el tiempo de respuesta más corto posible para las tareas aperiódicastodas las tareas esporádicas aceptadas cumplen sus plazos
17
97
Tareas aperiódicas
Gestión de tareas periódicas y aperiódicas:
• Servidores de tareas aperiódicas:• Servidor en segundo plano (background scheduling)
• Servidor con reserva de ancho de banda (bandwidth preserving)• Servidor por consulta (polling server)• Servidor diferido (deferrable server)• Servidor con intercambio de prioridad (priority exchange)• Servidor esporádico (sporadic server).
• Servidor con extracción de holgura (slack stealing server)
• Tareas con restricciones de precedencia
98
Planificación en background
Es el método más simple:
El servidor ejecuta tareas aperiódicas sólo cuando no hay tareas periódicas listas para ejecución, es decir, en el tiempo de procesador que queda disponible después de planificar todas las tareas periódicas.
Las tareas aperiódicas tienen asignada una prioridad inferior a las tareas periódicas.
τ1
τ2
Peticiones aperiódicas
262 4 6 8 10 12 14 16 18 20 22 240
1 2
99
Planificación en background
Tareas periódicas
Tareas aperiódicas
Cola de alta prioridad
Cola de baja prioridad
CPU
RM
FCFS
100
Servidor con reserva de ancho de banda
Se reserva un tiempo de cómputo (C) para tratar eventos aperiódicos.
Métodos:• Servidor por consulta (polling server).• Servidor diferido (deferrable server).• Servidor con intercambio de prioridad (priority exchange).• Servidor esporádico (sporadic server).
Se diferencian en:• Cómo se restaura el tiempo de cómputo.• Qué se hace si no se usa el tiempo asignado.
Son predecibles. La asignación de tiempo de computo es estática. Si se siguen produciendo eventos aperiódicos después del hueco reservado al servidor, éste seguirá atendiendo los eventos, pero a una prioridad más baja que la de todas las tareas periódicas (servidor en background)
101
Servidor por consulta (polling server)
Polling serverse planifica como una tarea periódica: (T, C)
T: periodo C: capacidad de ejecuciónla capacidad se rellena al principio de cada periodo (instante de relleno)Se puede utilizar tanto con RM como con DM.No es una cuestión trivial elegir el tiempo de cómputo y el periodo para el servidor.
cola de tareas aperiódicassi no está vacía, el servidor ejecuta la tarea situada al inicio de la cola hasta que se consume la capacidad ó se vacía la cola.Si está vacía, el servidor se suspende inmediatamente hasta el siguiente periodo. 102
Servidor por consulta (polling server)
C T=D
τ1 1 4
τ2 2 6
Cs = 2
Ts = 5
Servidor
τ1
τ2
Peticiones aperiódicas
262 4 6 8 10 12 14 16 18 20 22 240
2 21
262 4 6 8 10 12 14 16 18 20 22 240
Cs
1
Alta
Baja
Media
18
103
Servidor diferido (deferrable server)
Deferrable serverse planifica como una tarea periódica: (T, C)
T: periodo C: capacidad de ejecuciónla capacidad se rellena al principio de cada periodo (instante de relleno)
cola de tareas aperiódicasmientras le quede tiempo de cómputo disponible, el servidor atenderá las peticiones aperiódicas inmediatamente (si tiene la máxima prioridad entre las tareas activas).Cuando consuma su capacidad, se suspende hasta el siguiente periodo.El servidor mantiene su prioridad durante todo el período
104
Servidor diferido (deferrable server)
C T=D
τ1 1 4
τ2 2 6
Cs = 2
Ts = 5
Servidor
τ1
τ2
Peticiones aperiódicas
262 4 6 8 10 12 14 16 18 20 22 240
2 21
262 4 6 8 10 12 14 16 18 20 22 240
Cs
1
105
Intercambio de prioridad (priority exchange)
Priority exchange serverse planifica como una tarea periódica: (T, C)
T: periodo C: capacidad de ejecuciónla capacidad se rellena al principio de cada periodo (instante de relleno)
106
Priority exchange servercola de tareas aperiódicas
al igual que el servidor diferido, se emplea un servidor periódico (generalmente de alta prioridad) para servir peticiones aperiódicas.difiere en la forma en que se conserva la capacidad. A diferencia del servidor diferido, el servidor por intercambio deprioridad mantiene su capacidad de alta prioridad intercambiándola por tiempo de ejecución de una tarea periódica de menor prioridad.Al principio de cada periodo del servidor, se rellena la capacidad a su valor máximo. Si hay peticiones aperiódicas pendientes y el servidor es la tarea activa más prioritaria, se sirven las peticiones aperiódicas usando la capacidad disponible; en caso contrario, la capacidad se intercambia por tiempo de ejecución de la tarea periódica activa de máxima prioridad.
Intercambio de prioridad (priority exchange)
107
Priority exchange serverCuando se produce un intercambio de prioridad entre una tarea periódica y el servidor, la tarea periódica se ejecuta al nivel de prioridad del servidor mientras que el servidor acumulauna capacidad al nivel de prioridad de la tarea periódica. De esta forma, la tarea periódica avanza su ejecución, y la capacidad del servidor no se pierde, sino que se mantiene a un nivel de prioridad inferior. Si no llega ninguna petición aperiódica para usar esa capacidad, el intercambio de prioridad continúa con otra tarea de prioridad inferior hasta que la capacidad se emplee para servicio aperiódico ó sea degradada hasta el nivel de prioridad de procesamiento en background.
Intercambio de prioridad (priority exchange)
108
Intercambio de prioridad (priority exchange)
C T=D
τ1 4 10
τ2 8 20
Cs = 1
Ts = 5
Servidor
τ1
τ2
Peticiones aperiódicas
2 4 6 8 10 12 14 16 18 200
1
2 4 6 8 10 12 14 16 18 200
Cs
1
2 4 6 8 10 12 14 16 18 200
Cs1
2 4 6 8 10 12 14 16 18 200
Cs2
1
1
12
19
109
Sporadic serverse planifica como una tarea periódica: (T, C)
T: periodoC: capacidad de ejecución
El algoritmo servidor esporádico (SS) difiere del servidor diferido en una pequeña idea, pero teóricamente importante : la capacidad de ejecución no se rellena periódicamente. En vez de eso, la capacidad se rellena sólo si se consume. El servidor esporádico mantiene su tiempo de ejecución y nivel de prioridad hasta que se produzca una petición aperiódica.El algoritmo rellena la capacidad de ejecución del servidor después de que parte o todo el tiempo de ejecución asignado sea consumido por la atención a tareas aperiódicas.El método de relleno de la capacidad del servidor es lo que lo diferencia de otros métodos.
Servidor esporádico (sporadic server)
110
términos necesarios para explicar el método de relleno del tiempo de ejecución del servidor esporádico:
Ps : Nivel de prioridad de la tarea actualmente en ejecución.Pi : Nivel de prioridad i. i ∈ {1,2,3...} siendo P1 > P2> P3...
Activo: Estado que describe un nivel de prioridad Pi. cuando la prioridad de la tarea actualmente en ejecución (Ps) es mayor o igual que Pi . Ps ≥ Pi
Ocioso: Referido a un nivel de prioridad Pi. cuando la prioridad de la tarea actualmente en ejecución (Ps) es menor que Pi . Ps < Pi
RTi : Instante de relleno del nivel de prioridad i . Instante en el que se restaura la capacidad del servidor esporádico del nivel Pi . Cuando se activa el instante de relleno, este es igual al instante actual (t) más el periodo del servidor : RTi = t + Ti
Servidor esporádico (sporadic server)
111
La planificación del relleno del servidor esporádico de nivel i consiste en determinar:
el instante de relleno, RTi
la cantidad de relleno.
Ambos dependen de:la capacidad disponible por el servidor esporádicoel estado (Activo/Ocioso) del nivel de prioridad al que pertenece el servidor.
Servidor esporádico (sporadic server)
112
Las reglas para la planificación del relleno de un servidor que se ejecuta en el nivel de prioridad Pi son:
Si el servidor tiene capacidad disponible, RTi se inicializa cuando Pi pase de Ocioso a Activo. Si se ha consumido la capacidad del servidor, RTi no puede inicializarse hasta que la capacidad del servidor sea mayor que cero y Pi esté activo.
La cantidad de relleno se determina:cuando Pi pase a Ocioso, o biencuando la capacidad disponible se haya consumido
Su valor es igual al tiempo de ejecución consumido desde la última vez que el estado de Pi pasó de Ocioso a Activo.
Servidor esporádico (sporadic server)
113
Servidor esporádico (sporadic server)
T=D C
τ1 10 2
τ2 14 6
SS 5 1
Ejemplo 1
τ1
τ2
SS
2 4 6 8 10 12 14 16 18 200
2 4 6 8 10 12 14 16 18 200
Css
1 1
+1 +1
+1 +1
RT = 1 + T = 6 RT = 8 + T = 13
P1
P2
P3
114
Servidor esporádico (sporadic server)
T=D C
τ1 10 2
τ2 14 6
SS 10 2
Ejemplo 2
τ1
τ2
SS
2 4 6 8 10 12 14 16 18 200
2 4 6 8 10 12 14 16 18 200
Css
1 1
+1 +1
+1
RT = 0 + T = 10
P1
P2
RT = 8 + T = 18 RT = 10 + T = 20
+0
+0+1
20
115
Servidor esporádico (sporadic server)
T=D C
τ1
10 2.5
τ2 14 6
SS5 1
Ejemplo 3
τ2
SS
2 4 6 8 10 12 14 16 18 200
τ1
2 4 6 8 10 12 14 16 18 200
Css
1
+1 +1
RT = 4.5 + T = 14.5
P2
P2
RT = 8 + T = 18
+0
P11
+0 +0+0
+1+12.5
2
1.5
1
0.5
0
116
Servidor esporádico (sporadic server)
T=D C
τ1
10 2
τ2 40 10
SS4 1
Ejemplo 4
τ2
SS
2 4 6 8 10 12 14 16 18 200
τ1
2 4 6 8 10 12 14 16 18 200
Css
3
+2 +1
RT = 1 + T = 11
P2
P2
RT = 10 + T = 20
P1
+0 +0
+1 +12.5
2
1.5
1
0.5
0
117
Servidor esporádico (sporadic server)
T=D C
τ1
5 2
τ2 10 3
SS4 1
Ejemplo 5
τ2
SS
2 4 6 8 10 12 14 16 18 200
τ1
2 4 6 8 10 12 14 16 18 200
Css
2
P2
P3
P1
2
2
1
0
1 1
+1
RT = t + T
+1
+1
+1
+1 +1
+1 +1 +1
+1 +1
+1
118
Servidor con extracción de holgura
Holgura : tiempo de cómputo disponible en ejecución.
Las tareas no usan siempre todo el tiempo de computo asignado y la utilización del procesador no suele ser el 100%.
Hay varios algoritmos para detectar la holgura existente. La holgura calculada se usa para tratar los eventos aperiódicos.
Son algoritmos costosos y no garantizan la existencia de holguradisponible.
Para cada nivel de prioridad se calcula la máxima cantidad de procesamiento aperiódico que puede realizarse durante un intervalo de tiempo [t0, t1] asegurando los plazos de respuesta de todas las tareas periódicas. Es necesario emplear un algoritmo on-line por lo que el calculo será computacionalmente intensivo.
119
Slack stealingA diferencia de otros algoritmos, éste no crea un servidor periódico para dar servicio a tareas aperiódicasSe crea una tarea pasiva, denominada extractor de holgura (Slack Stealer), que intenta obtener tiempo para dar servicio a tareas aperiódicas (minimizando su tiempo de respuesta) robando todo el tiempo de procesamiento posible a las tareas periódicas sin causar la pérdida de sus plazos. Esto es equivalente a extraer holgura de las tareas periódicas.
Si ci(t) es el tiempo de computación restante en el instante t, la holgura de la tarea i es:
slacki(t) = di - t - ci(t)
Servidor con extracción de holgura
120
Servidor con extracción de holgura
τ1
τ2
Peticiones aperiódicas
262 4 6 8 10 12 14 16 18 20 22 240
3
τ1
τ2
262 4 6 8 10 12 14 16 18 20 22 240
3
21
121
Tareas con restricciones de precedencia
122
En ciertas aplicaciones, las tareas no pueden ejecutarse en un orden arbitrario sino que deben respetar algunas relaciones de precedencia definidas en la etapa de diseño. Estas restricciones especifican un orden de ejecución de tareas y se describen mediante un grafo dirigido acíclico, G, donde las tareas se representan como nodos y las relaciones de precedencia mediante arcos.
Ej. Sistema de seguimiento de aviones por radar:
T1 : tarea de procesamiento de señalT2 : tarea de cálculo de trayectoria
T1k precede a T2k para k = 1, ...
T1
T2
123
Ej. Sistema de visión artificial para el reconocimiento de objetos sobre una cinta transportadora mediante dos cámaras. Se consideran las siguientes tareas:
• Para cada cámara:• adquisición de imagen: acq1 y acq2• procesamiento de imagen de bajo nivel:
edge1 y edge2• Tarea shape para extraer características
bidimensionales a partir de los contornos del objeto
• Tarea disp para computar las disparidades de pixel a partir de las dos imágenes
• Tarea H que calcula la altura del objeto a partir de los resultados de disp
• Tarea rec que que realiza el reconocimiento final basado en H y shape
acq2
edge2
shape
acq1
edge1
disp
H
rec
124
•La notación Ta < Tb especifica que la tarea Ta es un predecesor de la tarea Tb, lo que significa que G contiene un camino desde el nodo Ta al nodo Tb
ej. T1 < T2, T1 < T5
•La notación Ta → Tb especifica que la tarea Ta es un predecesor inmediato de la tarea Tb , lo que significa que G contiene un arco dirigido desde el nodo Ta al nodo Tb
ej. T1 → T2, T3 → T5
•Las tareas sin nodos predecesores se denominan tareas o nodos iniciales.
ej. T1
•Las tareas sin nodos sucesores se denominan tareas o nodos terminales.
ej. T4, T5
T1
T3
T4
T2
T5
125
El problema de encontrar una planificación óptima para un conjunto de tareas con relaciones de precedencia es, en general, NP-hard.
Sin embargo, bajo ciertas suposiciones sobre las tareas es posible encontrar algoritmos óptimos que resuelvan el problema en tiempo polinomial con el objetivo de minimizar el retraso máximo.
Dos algoritmos minimizan el retraso máximo (lateness) (L = R - D), suponiendo:
• activaciones síncronas (simultáneas): Latest Deadline First (LDF )
• activaciones arbitrarias con desalojo: Earliest Deadline First (EDF)126
LDF con restricciones de precedencia y activación simultánea
El problema de planificar un conjunto de n tareas con restricciones de precedencia y activación simultánea puede resolverse en tiempo polinomial y de forma óptima según un algoritmo LDF (latest deadline first) (último plazo primero).
22
127
LDF con restricciones de precedencia y activación simultánea
Se construye una pila de planificación recorriendo el grafo de precedencia desde las hojas (nodos terminales) a la raíz (nodo inicial):
• Entre las tareas sin sucesores, o cuyos sucesores ya han sido seleccionados, LDF selecciona la tarea con el plazo (deadline) más lejano para insertarla en la pila.
• Este procedimiento se repite hasta que se hayan seleccionado todas las tareas.
• En tiempo de ejecución, las tareas se extraen de la pila, de tal manera que la primera tarea que se insertó en la pila será la última que se ejecute, mientras que la última insertada será la primera en ejecutarse (LIFO). 12871 2 3 4 5 60
T1 T2 T4 T3 T5 T6
Ci
di
T1
1
2
T2
1
5
T3
1
4
T4
1
3
T5
1
5
T6
1
6
Ejemplo LDF
Lmax = 0
d1 d3d4 d2 = d5 d6
LDF{(T4), (T5), (T6)} =
LDF{(T1)} =
LDF{(T2)} =
LDF{(T4)} =
LDF{(T3), (T4)} =
LDF{(T3), (T4), (T5)} =(T6)
(T1)
(T2)
(T4)
(T3)
(T5)
T1
T5T4
T3T2
T6
Especificaciones
129
EDF con restricciones de precedencia y activación simultáneaSe construye una cola de planificación recorriendo el grafo de precedencia desde la raíz (nodo inicial) a las hojas (nodos terminales):
• Entre las tareas sin predecesores, o cuyos predecesores ya han sido seleccionados, EDF selecciona la tarea con el plazo (deadline) más cercano para insertarla en la cola.
• Este procedimiento se repite hasta que se hayan seleccionado todas las tareas.
• En tiempo de ejecución, las tareas se extraen de la cola en orden FIFO.
EDF no es óptima con restricciones de precedencia y activación simultánea. 130
T1
T3
T4
T2
T5 T6
71 2 3 4 5 60
T1 T3 T2 T4 T5 T6
d1 d3d4 d2 = d5 d6
Ci
di
T1
1
2
T2
1
5
T3
1
4
T4
1
3
T5
1
5
T6
1
6
Ejemplo EDF
Lmax = L4 = 1
131
EDF con restricciones de precedencia y activaciones dinámicasEl problema de planificar un conjunto de n tareas con restricciones de precedencia, activaciones dinámicas ydesalojo puede resolverse en tiempo polinomial,minimizando el retraso (lateness) (L = R-D) máximo fue resuelto por Chetto, Silly y Bouchentouf (1990).
La idea básica consiste en transformar el sistema original de tareas dependientes en otro conjunto sin relaciones de precedencia y con atributos temporales modificados. Básicamente, se modifican todos los instantes de activación y los plazos límite de tal forma que cada tarea no empiece antes de sus predecesores y no desaloje a sus sucesores. 132
EDF con restricciones de precedencia y activaciones dinámicas
La transformación del sistema original de tareas dependientes en otro conjunto de tareas independientes sin relaciones de precedencia se realiza en los siguientes pasos:
1.- se construye un grafo dirigido (G) representando las relaciones de precedencia
2.- se transforman los instantes de activación3.- se transforman los instantes límite
4.- En tiempo de ejecución, las tareas se ejecutan según el algoritmo de planificación EDF (menor plazo límite primero)
23
133
1.- Construcción de un grafo dirigido (G) representando las relaciones de precedencia:
• Nodos N(G) : tareas
• Arcos dirigidos E(G) : relaciones de precedencia
Ta < Tb : Ta es un predecesor de Tbexiste un camino de Ta a Tb en G
Ta → Tb : Ta es un predecesor directo de Tbexiste un arco dirigido de Ta a Tb en G
134
2.- Transformación de los instantes de activación:
Para los nodos iniciales, ai* = ai
Sea τi tal que su tiempo de activación no se ha modificado, pero sí el de todos sus predecesores inmediatos. Se modifica ai así:
( )⎥⎦⎤
⎢⎣⎡ +=
→ kkii Caamaxa maxik
** ,ττ
135
3.- Transformación de los tiempos límite (deadline)
Para los nodos terminales, di* = di
Sea τi tal que su tiempo límite no se ha modificado, pero sí el de todos sus sucesores inmediatos. Se modifica di así:
( )⎥⎦⎤
⎢⎣⎡ −=
→ kkii Cddmind minki
** ,ττ
136
A
B
C
D
E
F
G
TareaABCDEFG
a0000000
a*
0033688
d20202020202020
d*
15101815202020
C2335125
Ejemplo 1
OJO: ΣCi = 21 ⇒ la última tarea en ejecutarse perderá los plazos, pero el algoritmo minimiza el retraso máximo.
137
A
B
C
205 10 15
E
F
G
D
0
Pierde el deadline Lmax = LG = 1
138
A
B
C
D
E
F
TareaABCDEF
a011379
d410861012
C222222
Ejemplo 2
24
139
A
B
C
5 10
E
F
D
0
Lmax = 01 32 4 6 7 8 9 11 12
Diagrama de planificación con política EDF, ignorando todas las restricciones de precedencia
2.1.-
A B C D E F
140
A
B
C
5 10
E
F
D
0
Lmax = LD = 21 32 4 6 7 8 9 11 12
Diagrama de planificación con política EDF que active una tarea únicamente después de que su predecesor haya finalizado su ejecución.
Pierde el deadline
AB
C
D
E
F
2.2.-
141
A
B
C
D
E
F
TareaABCDEF
a011379
a*
022479
d410861012
d*
24861012
C222222
( )⎥⎦⎤
⎢⎣⎡ +=
→kkii Caaa
ik
** max,maxττ
( )⎥⎦⎤
⎢⎣⎡ −=
→kkii Cddd
ki
** min,minττ
Política EDF con modificación de los instantes de activación y plazos límite.
3.3.-
142
A
B
C
5 10
E
F
D
0 1 32 4 6 7 8 9 11 12
Modificación de los instantes de activación y plazos límite.
AB
C
D
E
F
143
A
B
C
5 10
E
F
D
0
Lmax = 0
1 32 4 6 7 8 9 11 12
Diagrama de planificación con política EDF, considerando las restricciones de precedencia, y modificando los instantes de activación y plazos límite.
AB
C
D
E
F