tema 5 - eis.uva.esjossan/doct/cystr/fich/tema5_x6.pdf · 1 1 tema 5 planificación estática de...

24
1 1 TEMA 5 Planificación estática de tareas 2 Planificación de tareas El problema de la concurrencia El problema de la planificación Planificación de tareas Modelo básico Planificación rate monotonic Teorema de Liu y Layland Análisis del tiempo de respuesta Planificación deadline monotonic Recursos compartidos Herencia de prioridad Techo de prioridad y techo de prioridad inmediato 3 Modelo de tareas generalizado Planificación cooperativa Activación irregular (jitter) Plazos arbitrarios Extensión del modelo Cambio de contexto Cambio de modo Tareas aperiódicas Servidor en background Reserva de ancho de banda Extracció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+10 t t+25 t+20 t+15 t+5 e 1 e 2 t+10 t t+25 t+20 t+15 t+5 e 1 e 2

Upload: doanh

Post on 04-Oct-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

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