You are on page 1of 37

dit

UPM

Planificacin de tareas de
tiempo real
Juan Antonio de la Puente
DIT/UPM

Copyright 2007, Juan Antonio de la Puente

2007 Juan Antonio de la Puente

Objetivos

Plantear los problemas bsicos relacionados con el


cumplimiento de los requisitos temporales

Conocer los principales mtodos de planificacin de


tareas y sus caractersticas temporales

Evaluar las ventajas e inconvenientes de los diversos


mtodos de planificacin de tareas

2/10/07

Planificacin de tareas

2007 Juan Antonio de la Puente

Tareas y requisitos temporales

2/10/07

Planificacin de tareas

2007 Juan Antonio de la Puente

Tareas de tiempo real

En un sistema de tiempo real se ejecutan una o ms


tareas

Cada tarea ejecuta una actividad de forma repetida


cada vez que ejecuta la actividad se produce un ciclo de ejecucin
durante el ciclo de ejecucin la tarea permanece activa
cuando termina la actividad pasa a estar inactiva en espera de
que comience el siguiente ciclo de ejecucin
activa
inactiva

2/10/07

inactiva

Planificacin de tareas

2007 Juan Antonio de la Puente

Concurrencia
Los sistemas de tiempo real controlan actividades del mundo
exterior que son simultneas
Para ello deben ejecutar varias tareas en paralelo
(concurrentemente)
La ejecucin de las tareas se multiplexa en el tiempo en uno o
varios procesadores
activa
A

ejecutndose

inactiva

B
C

2/10/07

Planificacin de tareas

Requisitos temporales
Los requisitos de tiempo real se refieren a

2007 Juan Antonio de la Puente

El principio del ciclo de ejecucin


(esquema de activacin)
Tareas peridicas: se ejecutan a intervalos regulares
Tareas espordicas: se ejecutan cuando ocurren determinados
sucesos (en instantes distribuidos irregularmente )

El final del intervalo de ejecucin


Se suele especificar un plazo (relativo al instante de activacin)
para terminar la ejecucin

2/10/07

Planificacin de tareas

Tareas peridicas y espordicas

T (perodo)
D (plazo)

Tarea peridica
T
D

fallo

2007 Juan Antonio de la Puente

T (separacin)

Tarea espordica

D (plazo)

D
t

2/10/07

Planificacin de tareas

2007 Juan Antonio de la Puente

Planificacin de tareas

2/10/07

Planificacin de tareas

2007 Juan Antonio de la Puente

Planificacin de tareas

Se trata de repartir el tiempo de procesador entre varias


tareas de forma que se satisfagan los requisitos
temporales

La relacin biunvoca entre acciones y procesadores es


un plan de ejecucin (schedule)

El componente del sistema que hace esto es el


planificador (scheduler)
para ello utiliza un algoritmo de planificacin

2/10/07

Planificacin de tareas

Esquemas de planificacin

Planificacin dirigida por tiempo (time/clock-driven)


el planificador se ejecuta cada vez que llega una seal de reloj

2007 Juan Antonio de la Puente

ejemplo: planificacin cclica

Planificacin por turno circular (round-robin)


las acciones listas para ejecutarse se agrupan en una cola FIFO
cada accin se ejecuta durante una rodaja de tiempo y despus
se pone al final de la cola
variante: rodajas de tiempo desiguales (ponderadas)

Planificacin por prioridades


cada accin tiene una prioridad
se ejecuta siempre la accin de mayor prioridad entre las listas
la planificacin est dirigida por sucesos (event-driven)

2/10/07

Planificacin de tareas

Planificacin con y sin desalojo

Planificacin con desalojo (preemptive scheduling)


se puede desalojar del procesador una accin que se est
ejecutando para dar paso a otra

2007 Juan Antonio de la Puente

se usa normalmente con prioridades

Planificacin sin desalojo (non-preemptive scheduling)


una accin que ha comenzado a ejecutarse slo deja el
procesador si
termina su ejecucin
necesita un recurso que no est disponible
abandona el procesador voluntariamente

2/10/07

Planificacin de tareas

10

Prioridades fijas y variables

Planificacin con prioridades fijas


la prioridad de las acciones de una misma tarea es siempre la
misma

2007 Juan Antonio de la Puente

puede variar si hay cambios de modo

ejemplo: prioridades montonas en frecuencia


(rate-monotonic scheduling)
mayor prioridad a la tarea con perodo ms corto

Planificacin con prioridades variables (dinmicas)


la prioridad de una accin se decide en el momento de ejecutarla
ejemplo: primero el ms urgente (earliest deadline first)
mayor prioridad a la accin que deba terminar antes

2/10/07

Planificacin de tareas

11

Modelos de tareas

Un modelo de tareas especifica las caractersticas de las


tareas de un sistema de tiempo real

2007 Juan Antonio de la Puente

se restringen para poder analizar el sistema y garantizar los


requisitos temporales

Ejemplos:

slo tareas peridicas independientes


tareas peridicas y espordicas independientes
tareas con comunicacin y sincronizacin
tareas estticas o dinmicas

Empezamos con modelos sencillos


tareas peridicas independientes

2/10/07

Planificacin de tareas

12

2007 Juan Antonio de la Puente

Planificacin esttica

2/10/07

Planificacin de tareas

13

Modelo de tareas cclico

Hay muchos sistemas de tiempo real que slo tienen


tareas peridicas

2007 Juan Antonio de la Puente

son ms fciles de construir


su comportamiento est completamente determinado

Inicialmente consideramos que no hay comunicacin entre


tareas (tareas independientes)
C
C
C

2/10/07

Planificacin de tareas

14

Arquitectura sncrona

Las tareas se ejecutan segn un plan de ejecucin fijo


(realizado por el diseador)
El sistema operativo se reemplaza por un ejecutivo
cclico

2007 Juan Antonio de la Puente

reloj
ejecutivo
cclico

tarea 1

2/10/07

tarea 2

Planificacin de tareas

tarea 3

15

Parmetros temporales

2007 Juan Antonio de la Puente

Una tarea peridica se define por su parmetros (,T,C,D)

T
C
D

es la fase
es el perodo de activacin de la tarea
es su tiempo de cmputo en el peor caso
es el plazo de respuesta relativo a la activacin
T

T
D

C
0

2/10/07

Planificacin de tareas

16

Hiperperodo

2007 Juan Antonio de la Puente

En un sistema formado nicamente por tareas peridicas


con perodos Ti, i = 1..N, el comportamiento global se
repite con un perodo
H = mcm (Ti)
H es el hiperperodo del sistema
H

T1

1
T2

2/10/07

Planificacin de tareas

17

2007 Juan Antonio de la Puente

Planificacin esttica

Si todas las tareas son peridicas, se puede confeccionar


un plan de ejecucin fijo

Se trata de un esquema que se repite cada


(ciclo principal)
TM = mcm(Ti )
el perodo del ciclo principal es igual al hiperperodo del sistema

El ciclo principal se divide en ciclos secundarios, con


perodo TS
(TM = k ! TS)

En cada ciclo secundario se ejecutan las actividades


correspondientes a determinadas tareas

2/10/07

Planificacin de tareas

18

Ejemplo 1
20 ms

40 ms

2007 Juan Antonio de la Puente

Plan cclico: TM = 40 ms; TS = 20 ms


ciclo principal
ciclo secundario

ciclo secundario

ciclo secundario

ciclo secundario

A
0

2/10/07

ciclo principal

B
10

A
20

A
30

40

B
50

Planificacin de tareas

A
60

70

80

19

Ejecutivo cclico

2007 Juan Antonio de la Puente

procedure Cyclic_Executive is
type Frame is mod 2;
Index :Frame := 0;
begin
Set_Timer (Periodic, 0.020);
loop
Wait_Clock_Interrupt; -- cada 20ms
case Index is
when 0 => A; B;
when 1 => A;
end case;
Index := Index + 1;
end loop;
end Cyclic_Executive;

2/10/07

Planificacin de tareas

20

Plazos de respuesta

2007 Juan Antonio de la Puente

Se comprueba que se cumplen los plazos


directamente sobre el plan de ejecucin
Para ello hace falta conocer el tiempo de cmputo de
cada tarea
Ejemplo:
A:
B:

T = 20 ms
T = 40 ms

A,B

DA

A
0
2/10/07

B
10

D = 20 ms
D = 40 ms

C = 8 ms
C = 12 ms

DA
DB

A
20

30
Planificacin de tareas

40
21

Factor de utilizacin
N

La cantidad U =

2007 Juan Antonio de la Puente

i =1

Ci
Ti

se denomina factor de utilizacin del procesador


Es una medida de la carga del procesador para un
conjunto de tareas
Para poder elaborar un plan de ejecucin que garantice
los plazos de todas las tareas,
debe ser U ! 1

2/10/07

Planificacin de tareas

22

Parmetros del plan cclico

2007 Juan Antonio de la Puente

(1)
Ts ' max Ci
(2) &i : Ti TS $ !Ti Ts " = 0
(3) %i : 2TS $ mcd(TS ,Ti ) # Di
El perodo secundario debe cumplir ciertas condiciones (Baker&Shaw, 1989):
1. Todas las acciones deben caber en un marco
2. El perodo secundario divide al menos al perodo de una tarea
(y por tanto al perodo principal)
3. Entre el instante de activacin y el tiempo lmite de cada accin debe haber al
menos un marco completo (para poder comprobar si la accin termina a
tiempo)
si la accin se activa al comienzo de un marco, basta que TS Di

2/10/07

Planificacin de tareas

23

Condicin (3)

2007 Juan Antonio de la Puente

Di

ri,k

t+TS

t+2TS

ri,k + Di

t + 2Ts ! ri ,k + Di
2TS " (ri , j " t )! Di
ri , j " t # mcd (Ti ,TS )
2TS " mcd (Ti ,TS ) ! Di

2/10/07

Si ri,k = t, basta con que sea


TS Di

Planificacin de tareas

24

2007 Juan Antonio de la Puente

Ejemplo 2

Tarea
T1
T2
T3
T4

C
10
18
10
20

U = 0,76
TM = 200

2/10/07

T
D
40 40
50 50
200 200
200 200

1) TS $ 20
2) TS # {20,25,40,50,100,200}
3 ) 2TS " mcd(TS ,40 ) ! 40
2TS " mcd(TS ,50 ) ! 50
2TS " mcd(TS ,200 ) ! 200
TS = 20

Planificacin de tareas

25

Ejemplo 2: plan cclico

2007 Juan Antonio de la Puente

T4
T3
T2
T1

T1 T3
0

2/10/07

20

T2

T1
40

T4
60

T2
80

T1
100

T2
120

Planificacin de tareas

T1
140

T1
160

T2
180

200

26

Tareas espordicas

2007 Juan Antonio de la Puente

El ejecutivo cclico slo permite ejecutar tareas peridicas


Las tareas espordicas se ejecutan con un
servidor de consulta (polling server)
Es una tarea peridica que consulta si se ha producido el
suceso espordico o no
el perodo depende de la separacin mnima entre eventos y del
plazo de respuesta

TP

TS
A

suceso
2/10/07

Planificacin de tareas

27

2007 Juan Antonio de la Puente

Ejemplo de servidor de consulta

procedure Polling_Server is
Event_Occurred : Boolean := False;
begin
-- invocado peridicamente por el ejecutivo cclico
Check (Event_Occurred);
if Event_Occurred then
Sporadic_Activity;
end if;
end Polling_Server;

2/10/07

Planificacin de tareas

28

Recursos compartidos

Una tarea (o segmento) se ejecuta sin interrupcin hasta


que termina
No es necesario proteger los recursos compartidos

2007 Juan Antonio de la Puente

la exclusin mutua es automtica

TA

TB

2/10/07

Planificacin de tareas

29

2007 Juan Antonio de la Puente

Segmentacin de tareas

A veces no es posible confeccionar un plan cclico que


garantice los plazos

Si U 1, es posible planificar la ejecucin segmentando


una o ms tareas

Los segmentos son secuencias de instrucciones de la


tarea con un tiempo de cmputo conocido

2/10/07

Planificacin de tareas

30

Ejemplo 3

2007 Juan Antonio de la Puente

Tarea

1) TS $ 50
2) TS # {50,100,200}
3 ) 2TS " mcd (TS ,40 ) ! 40
2TS " mcd (TS ,100 ) ! 100
2TS " mcd (TS ,200 ) ! 200

10

40

40

20

100

100

50

200

200

U = 0,95

TM = 200

2/10/07

Ningn valor cumple (1) y (3)


No hay solucin aceptable

Planificacin de tareas

31

Ejemplo 3 segmentacin

2007 Juan Antonio de la Puente

Tarea

10

40

40

20

100

100

3.1

10

200

200

3.2

30

200

200

3.3

10

200

200

(1) TS $ 30
(2) TS # {40,50,100,200}
(3) 2TS " mcd (TS ,40)
! 40
2TS " mcd (Ts ,100 )
! 100
2TS " mcd (Ts ,200 )

! 200

TS = 40 cumple todas las condiciones


1
0

2/10/07

3.1 1
40

3.2

1 3.3
80

1
120

Planificacin de tareas

1
160

200

32

Ejemplo 3: ejecutivo cclico

2007 Juan Antonio de la Puente

procedure Cyclic_Executive is
type Frame is mod 5;
Index :Frame := 0;
begin
loop
Wait_clock_Interrupt; -- cada 40ms
case Index is
when 0 => T1; T2; T3_1;
when 1 => T1;
T3_2;
when 2 => T1;
T3_3;
when 3 => T1; T2;
when 4 => T1;
end case;
end loop;
end Cyclic_Executive;

2/10/07

Planificacin de tareas

33

2007 Juan Antonio de la Puente

Problemas de la segmentacin

A veces es difcil ajustar el tiempo de cmputo de los


segmentos

Si hay recursos compartidos, cada seccin crtica debe


estar incluida en un solo segmento

Si se modifica una sola tarea hay que rehacer la


planificacin completa
y posiblemente volver a segmentar de otra manera

2/10/07

Planificacin de tareas

34

Construccin del plan cclico

Tres tipos de decisiones interdependientes:

2007 Juan Antonio de la Puente

ajustar el tamao de los marcos


segmentar acciones
colocar los segmentos en marcos

En general, el problema es NP-duro


no hay algoritmos eficientes que resuelvan todos los casos

Se usan algoritmos heursticos


se construye un rbol de soluciones parciales
se puede empezar colocando las tareas ms urgentes
se podan las ramas segn algn criterio heurstico

Es ms fcil cuando el sistema es armnico


pero esto puede forzar una mayor utilizacin del procesador

Cuando los perodos son muy dispares es ms difcil


muchos ciclos secundarios en cada ciclo principal

2/10/07

Planificacin de tareas

35

Conclusiones

2007 Juan Antonio de la Puente

Los sistemas cclicos, con arquitectura sncrona, tienen


muchas ventajas
implementacin sencilla y robusta
determinismo temporal
es posible certificar que son seguros

Pero tienen inconvenientes importantes


mantenimiento difcil y costoso
si se cambia algo hay que empezar desde el principio
la segmentacin aade mucha complejidad

es difcil incluir tareas espordicas

En general, es un mtodo de bajo nivel


slo es apropiado para sistemas que no se modifican unavez
construidos

2/10/07

Planificacin de tareas

36

You might also like