You are on page 1of 32

1

Planificacin de
Tareas
Sistemas de Tiempo Real
Dr. Ing. lvaro Rendn Galln
Popayn, octubre de 2007
Universidad del Cauca
Especializacin en Telemtica
UdelC - Telemtica
2
Temario
Requisitos temporales y planificacin
Planificacin Montona en Frecuencia
Interaccin entre tareas y otros factores
Planificacin en POSIX
Planificacin en RT-Java
2
UdelC - Telemtica
3
Tiempo real
La nocin del tiempo en programacin est
basada en cuatro requerimientos:
Acceso a un reloj
Retardo de las tareas
Programacin de temporizadores
Especificacin y planificacin de los plazos
Los 4 estn muy interrelacionados
El ltimo es la esencia de la programacin en
tiempo real:
el tratamiento de los requisitos temporales el tratamiento de los requisitos temporales
UdelC - Telemtica
4
Requisitos temporales
Premisas:
En los sistemas de tiempo real no es suficiente que
la lgica sea correcta
Los programas deben satisfacer adems requisitos
temporales
Preguntas:
Cmo construir un sistema para que satisfaga los
requisitos temporales?
Cmo verificar que las cumple?
3
UdelC - Telemtica
5
Requisitos temporales
Para una tarea son, en su forma ms simple:
Tiempo de activacin
Plazo de terminacin
Los plazos pueden clasificarse en:
Crticos (hard): No pueden incumplirse. Implican
una falla fatal del sistema
Flexibles (soft): Hay tolerancia al incumplimiento
del plazo. Implican degradacin del sistema
Firmes (firm): Pueden incumplirse, pero las
respuestas pierden su valor. Implican prdida de
la calidad del servicio que presta el sistema
UdelC - Telemtica
6
Tipos de tareas
En funcin de sus atributos temporales las tareas de
los sistemas de tiempo real se pueden clasificar en:
Peridicas: Se ejecutan a intervalos de tiempo
regulares. Normalmente tienen plazos crticos
Aperidicas: Su instante de ejecucin no se
puede anticipar, pues depende de eventos
asncronos internos o externos. Suelen tener
plazos flexibles
Espordicas: Son tareas aperidicas con un
tiempo entre llamadas acotado y caracterizadas
por tener plazos crticos (e.g. atencin de fallas
graves en el sistema)
4
UdelC - Telemtica
7
Marco temporal de una tarea
Identifican las restricciones temporales de un
conjunto de instrucciones (tarea)
ta+T
I
ta
c1 c2 c3
R
D
T
C= c1+c2+c3
S
ta: tiempo de activacin (release)
T: Perodo de ejecucin o
separacin mnima
D: Plazo de terminacin
R: Tiempo de respuesta
I: Desfase de activacin
C: Tiempo de cmputo mximo
S: Holgura
t
0
UdelC - Telemtica
8
Marco temporal de una tarea
Tambin se incluyen:
Esquema de activacin (peridico, espordico)
Laxitud del plazo (crtica, flexible, firme)
Expulsabilidad
Recursos requeridos y ventanas de disponibilidad
Satisfaccin de requisitos temporales
Al asociar los marcos temporales a las tareas, el
problema de satisfacer los requisitos temporales se
convierte en la planificacin de las tareas para
cumplir sus plazos: Planificacin de los plazos
5
UdelC - Telemtica
9
Tiempo de cmputo
Este es uno de los aspectos claves de la planificacin
Puede obtenerse de dos formas:
Medida del tiempo de ejecucin
No es fcil saber cundo se mide el tiempo mximo
Anlisis del cdigo: Se han propuesto diversas tcnicas
Dividiendo el cdigo en segmentos a los cuales se asigna un
tiempo de ejecucin para el peor caso:
Peticin de recurso
Primitiva de sincronizacin
Bloque de cdigo
Restringiendo las construcciones utilizables del programa
No llamadas recursivas directas o indirectas
No funciones o procedimientos como parmetros
Bucles acotados por nmero mximo de iteraciones o temporizacin
UdelC - Telemtica
10
Mtodo de planificacin
Determina un orden de ejecucin de las tareas que
sea factible: se cumplen los requisitos de recursos y
tiempos de las tareas
Un mtodo de planificacin consta de :
Un algoritmo de planificacin, que determina el orden
de acceso de las tareas a los recursos del sistema
(en particular al procesador)
Un mtodo de anlisis, que permite calcular
comportamiento temporal del sistema.
Comprueba si los requisitos temporales estn garantizados
en todos los casos posibles
En general se estudia el peor comportamiento posible
6
UdelC - Telemtica
11
Algoritmos de planificacin
Se construyen buscando los siguientes objetivos:
Equidad: Todas las tareas se tratan por igual. En algn
momento obtienen su turno hasta su terminacin exitosa
Eficiencia: El sistema debe de finalizar el mayor nmero
de tareas por unidad de tiempo
Mnimo tiempo de respuesta: Observado por cada
usuario o tarea
Mnimo tiempo de estancia: Entre la activacin y la
finalizacin de las tareas
Predictibilidad: Al aumentar la carga, la degradacin del
sistema debe ser paulatina
UdelC - Telemtica
12
Algoritmos de planificacin
Consideraciones a tener en cuenta en la eleccin del
algoritmo o poltica:
Nmero de tareas en el sistema
Homogeneidad o heterogeneidad de las tareas
Relaciones de precedencia entre las tareas
Mtodos de sincronizacin de las tareas
Tareas expulsables o no expulsables
Expulsable: Su ejecucin puede ser suspendida por otra
tarea, y reanudada ms tarde
No expulsable: La tarea se ejecuta sin interrupcin hasta
terminar
Se trabajar con tareas expulsables
7
UdelC - Telemtica
13
Algoritmos de planificacin
Estticos:
Calculan la planificacin factible fuera de lnea.
Requieren un conocimiento previo de las
caractersticas de las tareas
Bajo costo de tiempo de cmputo
Ms adecuados para sistemas crticos
Dinmicos:
Calculan la planificacin en tiempo de ejecucin
Pueden adaptarse a cambios en el entorno no
previstos
Pueden obtener una mayor utilizacin del procesador
Ms adecuados para sistemas flexibles
UdelC - Telemtica
14
Tipos de algoritmos
Basado en el reloj (Ejecutivo cclico)
La eleccin de la tarea a ejecutar se realiza en
instantes especficos, normalmente determinados
por un reloj
La planificacin se realiza fuera de lnea
T
M
= 100 msg
A A A A B B B B C C D D E
0 25 50 75 100
T
S
= 25 msg
T
A
= 25, T
B
= 25, T
C
= 50, T
D
=50, T
E
= 100
8
UdelC - Telemtica
15
Tipos de algoritmos
Ronda circular (RR: Round Robin)
Es comn en aplicaciones de tiempo compartido
Cada tarea tiene asignado un intervalo de ejecucin
Las tareas se ejecutan por turno.
Si una tarea no ha terminado al final de su intervalo,
es expulsada y reemplazada por la siguiente
Listos
Ejecutando
UdelC - Telemtica
16
Tipos de algoritmos
Basado en prioridades
A cada tarea se le asigna una prioridad, en
funcin de su importancia relativa
Se le entrega el procesador a la tarea con mayor
prioridad, expulsando la de menor prioridad
Las prioridades pueden ser:
Fijas: Se calculan una sola
vez, se asignan a la tarea y
se mantienen toda su vida
Dinmicas: Se modifican en tiempo
de ejecucin, segn el estado de
la tarea o el del sistema
P2 P3 P2
Ejecutando
P4 P6 P6
Listos
9
UdelC - Telemtica
17
Prioridades fijas
Dos mtodos ms conocidos:
RM (Rate Monotonic): Proporcional a la
frecuencia de la tarea
DM (Deadline Monotonic): Inversamente
proporcional al plazo de la tarea
Limitan el uso del procesador
Garantizan los plazos an en sobrecargas
Pueden ser modificados para manejar sincronizacin
entre tareas, tareas aperidicas, y otras situaciones

2
D
1
=T
1
D
2
=T
2
D
1
D
2
UdelC - Telemtica
18
Prioridades dinmicas
Dos mtodos ms conocidos:
EDF (Earliest Deadline First): Proporcional a la
proximidad del plazo de la tarea
LST (Least Slack Time First) o LL (Least Laxity):
Inversamente proporcional a la holgura (plazo menos
tiempo de procesamiento restante) de la tarea
Se obtiene un mejor uso del procesador
El comportamiento en sobrecargas no es previsible
No est bien resuelta la interaccin entre tareas
D
1
D
2

2
D
1
D
2

2
S
1
S
2
10
UdelC - Telemtica
19
Temario
Requisitos temporales y planificacin
Planificacin Montona en Frecuencia
Interaccin entre tareas y otros factores
Planificacin en POSIX
Planificacin en RT-Java
UdelC - Telemtica
20
Planificacin Montona en Frecuencia
RM (Rate Monotonic): Algoritmo de planificacin con
prioridades fijas propuesto por Liu y Layland (1973)
Parte de las siguientes suposiciones:
Todas las tareas son peridicas
Los plazos son iguales a los respectivos perodos
Las tareas son independientes entre s
El tiempo de ejecucin de las tareas es constante
Las tareas no se suspenden a s mismas
La sobrecarga del sistema operativo es cero
El sistema es monoprocesador
El conjunto de tareas es esttico
11
UdelC - Telemtica
21
Caracterizacin de las tareas
Se considera un conjunto de n tareas:

1
, ...,
n
Cada tarea
i
est caracterizada por 4 componentes:
(C
i
, T
i
, D
i
, I
i
), 1 i n
C
i
= Tiempo de ejecucin de
i
T
i
= Perodo de
i
D
i
= Plazo de
i
I
i
= Desfase de
i
relativo a un origen fijo en el tiempo
Inicialmente se considera D
i
= T
i
D
t
C
I+T 0 I+2T
Arranque
I
UdelC - Telemtica
22
Teorema 1: El mayor tiempo de respuesta para cualquier
tarea
i
ocurre para la primera ocurrencia de
i
cuando
I
1
= I
2
= ... = I
i
= 0.
El caso cuando I
1
= I
2
= ... = I
i
= 0, es decir, todas las
tareas arrancan a la vez, se denomina instante crtico
Es el peor caso, pues resulta en el tiempo de respuesta ms
largo, debido al arranque de las tareas de mayor prioridad
Un conjunto de tareas peridicas puede ser planificado
por un algoritmo de planificacin de prioridades fijas, si
se obtiene el cumplimiento del plazo de la primera
ocurrencia de cada una de las tareas que arranca en el
instante crtico
Instante crtico
12
UdelC - Telemtica
23
Ejemplo
Tarea T C

A

40 10

B

30 10

C

50 12

B
0 20 40 60 80 100 120

C
50 90 30 70 10 110
UdelC - Telemtica
24
Asignacin montona en frecuencia
Teorema 2: El algoritmo de planificacin montono en
frecuencia es ptimo entre todos los algoritmos de
planificacin de prioridad fija, para planificar
conjuntos de tareas peridicas con D
i
= T
i
.
Planificacin Montona en Frecuencia (Rate
Monotonic Scheduling): Se asigna mayor prioridad
a las tareas con menor perodo
Algoritmo ptimo: Si otro algoritmo puede planificar
las tareas, entonces ste tambin puede hacerlo
Cmo saber si el conjunto de tareas es planificable?
13
UdelC - Telemtica
25
Factor de utilizacin del procesador
Teorema 3: Un conjunto de tareas peridicas
1
,
2
...,
n
con D
i
= T
i
, 1 i n, es planificable por el algoritmo
de planificacin montona en frecuencia si
, 2 , 1 , 1 2
1
1
= |

\
|

|

\
|
=

=
n n
T
C
U
n
n
i
i
i
U*(n) = n (2
1/n
-1)
es el Factor de Utilizacin del procesador para
n tareas, que garantiza su planificabilidad
U*()= U* = ln 2= 0,693
n U*(n)
1 1,0
2 0,828
3 0,780
4 0,756
Cualquier conjunto de tareas peridicas se puede planificar
con RMS si no utiliza el procesador ms del 70%
UdelC - Telemtica
26
Ejemplo 1
Tarea T C P U
1
30 10 1 0,333
2
40 10 2 0,250
3
50 12 3 0,240
0,823

2
0 20 40 60 80 100 120

3
8 12
FALLA!!
El conjunto no cumple el criterio:
U*(3) = 0,780
U= 0,823 > U*(3)

3
no cumple su plazo en t =50
4 10 2
14
UdelC - Telemtica
27
Ejemplo 2
Tarea T C P U
1
100 20 1 0,200
2
150 40 2 0,267
3
350 100 3 0,286
0,753

2
0 100 200 300 400 500 600

3
40 20 30 10 40
El conjunto cumple el criterio:
U*(3) = 0,780
U= 0,753 < U*(3)
Todas las tareas cumplen sus
plazos
20 30 10
UdelC - Telemtica
28
Ejemplo 3
Tarea T C P U
1
20 5 1 0,250
2
40 10 2 0,250
3
80 40 3 0,500
1,000

2
0 20 40 60 80 100 120

3
15 5 5 15 5 15
El conjunto no cumple el criterio:
U*(3) = 0,780
U= 1,000 > U*(3)
Sin embargo, todas las tareas
cumplen sus plazos!!!
15
UdelC - Telemtica
29
Observaciones a RM
El lmite del peor caso del Teorema 3 (U* = 0,693)
es muy pesimista
Es una condicin suficiente (si cond plan;
si no cond no se sabe)
pero no necesaria (si no cond no plan)
Con tareas armnicas (perodos mltiplos entre s),
la ocupacin del procesador puede ser del 100%
Suelen encontrarse grandes conjuntos de tareas con
U cerca a 0,90 que son planificables usando RM
Esto sugiere que el comportamiento en el caso
promedio es sustancialmente mejor que el peor caso
En el tiempo restante se pueden ejecutar tareas no
crticas
UdelC - Telemtica
30
Importancia de RM
Asegura el cumplimiento de los plazos de las tareas
an cuando ocurre una sobrecarga transitoria
Permite gestionar las tareas aperidicas sin dejar de
cumplir los plazos de las tareas peridicas
Puede ser modificado para manejar los requisitos de
sincronizacin entre las tareas
Puede ser usado convenientemente para manejar
tareas que permiten computacin imprecisa
La Implementacin en procesadores, controladores
de E/S y dispositivos de telecomunicaciones es fcil
y eficiente: slo se busca la tarea lista con la mayor
prioridad
16
UdelC - Telemtica
31
Planificacin Montona en Frecuencia

2
0 20 40 60 80 100 120

3
, 2 , 1 , 1 2
1
1
= |

\
|

|

\
|
=

=
n n
T
C
U
n
n
i
i
i
n U*(n)
1 1,0
2 0,828
3 0,780
4 0,756
U*()= U* = ln 2= 0,693
Teorema 1: Instante crtico
Teorema 2: RMS
Teorema 3: Factor de utilizacin
Resumen Resumen
UdelC - Telemtica
32
Prueba exacta de planificabilidad
Lehoczky, Sha y Ding (1989) propusieron un mtodo
basado en la demanda acumulada de procesador
realizada por las tareas en el perodo crtico
L
i
(t): Demanda acumulada del procesador para las
tareas
1
, ...,
i

= (
(
(
(

=
i
j
j
j i
T
t
C t W
1
. ) (
t
t W
t L
i
i
) (
) ( =
(
x = entero ms pequeo x
17
UdelC - Telemtica
33
Demanda acumulada del procesador
Tarea T C
1
10 5
2
30 8
3 , 1
10
13
10
8 5
30
10
8
10
10
5
10
1
) 10 (
2
= =
+
=
|
|

\
|
(
(
(

+
(
(
(

= L
0 , 1
18
18
18
8 10
30
18
8
10
18
5
18
1
) 18 (
2
= =
+
=
|
|

\
|
(
(
(

+
(
(
(

= L
1 , 1
21
23
21
8 15
30
21
8
10
21
5
21
1
) 21 (
2
= =
+
=
|
|

\
|
(
(
(

+
(
(
(

= L
9 , 0
20
18
20
8 10
) 20 (
2
= =
+
= L
8 , 0
30
23
30
8 15
) 30 (
2
= =
+
= L

2
0 5 10 15 20 25 30 21 18
UdelC - Telemtica
34
Teorema 4: Dado un conjunto de tareas
1
, ...,
n

i
es planificable usando RM si y slo si
El conjunto es planificable usando RM si y slo si
La tarea
i
es planificable si en el intervalo (0, T
i
], L
i
(t) tiene
valores 1
El conjunto de n tareas es planificable si la anterior condicin se
cumple para cada una de ellas
Lo anterior requerira probar L
i
(t) para todas las tareas
i
en sus
respectivos intervalos (0, T
i
] buscando su valor mnimo
En realidad, slo hay que buscar en ciertos instantes de tiempo
Demanda acumulada del procesador
{ }
1 ) (
0
=
<
t L min L
i T t i
i
{ }
1
1
=
i n i
L max L
18
UdelC - Telemtica
35
Caracterizacin de la demanda
acumulada del procesador
0 5 10 15 20 25 30

2
1,0
L
2
(t)
Puntos de planificacin RM para
i
: Plazo de
i
e instantes
de llegada de las tareas de mayor prioridad en (0, T
i
]
L
i
(t) es montona decreciente
por segmentos

(
(

= = =
j
i
j i
T
T
k i j T k S , , 1 ; , , 1 | .

x = entero ms grande x
UdelC - Telemtica
36
Teorema 5: Dado un conjunto de tareas
1
,...,
n

i
es planificable usando RM si y slo si
El conjunto es planificable usando RM si y slo si
Donde:
Condicin necesaria y suficiente
{ }
1 ) ( =

t L min L
i S t i
i
{ }
1
1
=
i n i
L max L

= (
(
(
(

=
i
j
j
j i
T
t
C t W
1
. ) (

(
(

= = =
j
i
j i
T
T
k i j T k S , , 1 ; , , 1 | .
t
t W
t L
i
i
) (
) ( =
19
UdelC - Telemtica
37
Ejemplo
Tarea T C P U
1
100 40 1 0,400
2
150 40 2 0,267
3
350 100 3 0,286
0,953


No cumple el Teorema 3:
U > 0,753
No se garantiza la
planificabilidad del conjunto
Para
1
y
2
: U = 0,667 < 0,828: Cumplen el Teorema 3
Aplicando el Teorema 5 para
3
:
i = 3, S
3
= {T
1
, T
2
, 2T
1
, 3T
1
, T
3
}
L
3
(T
1
) = (C
1
+ C
2
+ C
3
)/ T
1
(40+40+100)/100 > 1
L
3
(T
2
) = (2C
1
+ C
2
+ C
3
)/ T
2
(80+40+100)/150 > 1
L
3
(2T
1
) = (2C
1
+ 2C
2
+ C
3
)/ 2T
1
(80+80+100)/200 > 1
L
3
(3T
1
) = (3C
1
+ 2C
2
+ C
3
)/ 3T
1
(120+80+100)/300 = 1 !
L
3
(T
3
) = (4C
1
+ 3C
2
+ C
3
)/ T
3
(160+120+100)/350 > 1

3
es planificable;
luego, el conjunto
es planificable
UdelC - Telemtica
38
Temario
Requisitos temporales y planificacin
Planificacin Montona en Frecuencia
Interaccin entre tareas y otros factores
Planificacin en POSIX
Planificacin en RT-Java
20
UdelC - Telemtica
39
Interaccin entre tareas
Las tareas no son independientes
Usan funciones de comunicacin y sincronizacin
Las tareas se suspenden y se produce el
fenmeno de inversin de prioridad:
Una tarea de mayor prioridad est bloqueada por
una tarea de menor prioridad por un tiempo
indefinido
Esto afecta gravemente la planificabilidad y la
predecibilidad
No se puede eliminar pero si acotarla
UdelC - Telemtica
40
Inversin de prioridad
D

1

2

3

3
D
D
D D
Inversin de prioridad

2
bloquea a
1
!!
S S
S S S
21
UdelC - Telemtica
41
Protocolo bsico de Herencia de
Prioridad
La solucin al problema de inversin de prioridad fue
propuesta originalmente por Sha, Rajkumar y
Lehoczky (1990):
Cuando una tarea entra en una seccin crtica y
bloquea tareas de mayor prioridad, hereda la
prioridad ms alta de las tareas bloqueadas
Al salir de la seccin crtica, la tarea recupera su
prioridad previa
La herencia de prioridad es transitiva: si
2
bloquea a

1
, y
3
bloquea a
2
,
3
hereda la prioridad de
1
Las operaciones de herencia y recuperacin de
prioridad deben ser indivisibles
UdelC - Telemtica
42
Ejemplo de Herencia de Prioridad

3
D
D
D

3
bloquea a
2
P3 P1
P2
P1
P3
herencia de prioridad
S S
S S S
22
UdelC - Telemtica
43
Propiedades de la Herencia de
Prioridad
El tiempo que una tarea puede permanecer
bloqueada por tareas de prioridad inferior es acotado
Slo puede ser bloqueada como mucho por una
seccin crtica por cada tarea de prioridad inferior
El tiempo de bloqueo en cada caso ser como
mximo la duracin de la seccin crtica
Problemas:
No previene los abrazos mortales
Se puede producir encadenamiento de bloqueos:
Varias tareas de menor prioridad bloquean en secuencia
una tarea de mayor prioridad
UdelC - Telemtica
44
Abrazo mortal con Herencia de
Prioridad

2
abrazo mortal!!
P2
P1
S2
S1 S2
P1
S1
Abrazo mortal:
1
y
2
se bloquean una a la otra
Posible solucin. Establecer orden de los semforos:
S1-S2
23
UdelC - Telemtica
45
Encadenamiento de bloqueos

3
Cadena de bloqueos:
1
est bloqueado por la
duracin de dos secciones crticas (
3
, S1) y (
2
, S2)
P3 P1
P2
P1
P3
S1
S2
S1
S1
P1
S2
S2 S1
P2
S1S2 S2
(
3
, S1) (
2
, S2)
UdelC - Telemtica
46
Protocolo de Techo de prioridad
inmediato
Se asigna a cada semforo (recurso) un Techo de
Prioridad, igual a la prioridad ms alta de las tareas
que pueden usar el semforo
Cuando una tarea entra en una seccin crtica,
hereda de inmediato el techo de prioridad del
semforo (no espera a bloquear alguna tarea)
Al salir de la seccin crtica, la tarea recupera su prioridad
previa.
Las operaciones de herencia y recuperacin de prioridad deben
ser indivisibles
24
UdelC - Telemtica
47
Techo de prioridad inmediato
Techo de prioridad de S1: P1
Techo de prioridad de S2: P1

3
P3
P2
P1
P3
S1
S2

3
hereda el techo
de prioridad de S1
S1
S2 S2 S1 S1
S2
P1
UdelC - Telemtica
48
Propiedades del Techo de Prioridad
El Protocolo del Techo de Prioridad previene los
abrazos mortales
Una tarea puede sufrir inversin de prioridad como
mucho por la duracin de mximo una seccin crtica
No hay encadenamiento de bloqueos
Las tareas de menor prioridad se bloquean desde el
comienzo
Es ms fcil de implementar
Es ms eficiente, pues requiere menos cambios de
contexto
25
UdelC - Telemtica
49
Anlisis de planificabilidad
Los teoremas 3 y 5 se modifican para tener en cuenta
el tiempo de bloqueo B
i
que puede experimentar cada
tarea
Condicin suficiente, para el peor caso:
Teorema 6: Un conjunto de n tareas peridicas que
usan el protocolo del techo de prioridad pueden ser
planificadas con el algoritmo de monotona en
frecuencia si se satisfacen las siguientes condiciones:
|

\
|
+ + + 1 2 , 1 ,
1
1
1 i
i
i
i
i
i
T
B
T
C
T
C
n i i
UdelC - Telemtica
50
Anlisis de planificabilidad
Condicin suficiente, menos restrictiva:
Teorema 7: Un conjunto de n tareas peridicas con
D
i
= T
i
que usan el protocolo del techo de prioridad
pueden ser planificadas con el algoritmo de
monotona en frecuencia para todos los desfases de
las tareas si
1 .
1
min max
1
1

|
|

\
|
+
(
(
(
(

=

t
B
T
t
C
t
L
i
i
j j
j
S t n i
i

(
(

= = =
j
i
j i
T
T
k i j T k S , , 1 ; , , 1 | .
Donde
26
UdelC - Telemtica
51
Otros factores a considerar
Tareas aperidicas y espordicas
Plazos menores o iguales que los perodos
Cambios de modo
Variacin en el esquema de activacin (jitter)
Plazos arbitrarios (incluso mayores que los perodos)
Sobrecargas del planificador
Tareas no totalmente interrumpibles
Planificacin cooperativa
UdelC - Telemtica
52
Temario
Requisitos temporales y planificacin
Planificacin Montona en Frecuencia
Interaccin entre tareas y otros factores
Planificacin en POSIX
Planificacin en RT-Java
27
UdelC - Telemtica
53
Planificacin en POSIX
El modelo de planificacin definido por POSIX es de
prioridades
La prioridad de un hilo hace parte de sus atributos de
creacin
Se puede cambiar de manera dinmica
Adems se puede establecer la poltica de
planificacin para las tareas con la misma prioridad.
Se pueden elegir entre:
SCHED_FIFO: en orden de llegada
SCHED_RR: ronda circular
SCHED_OTHER: depende de la implementacin
UdelC - Telemtica
54
Planificacin en POSIX
Se puede especificar un protocolo de acceso para
los mutex (semforos binarios), el cual puede ser:
PTHREAD_PRIO_INHERIT: Herencia de prioridad bsica
PTHREAD_PRIO_PROTECT: Techo de prioridad inmediato
PTHREAD_PRIO_NONE: No hay herencia de prioridad
El protocolo se incluye en los atributos de creacin
del mutex
28
UdelC - Telemtica
55
Funciones de planificacin de procesos
Fijar y obtener los parmetros de planificacin
sched_setparam()
sched_getparam()
Fijar y obtener la poltica de planificacin y los
parmetros de planificacin
sched_setscheduler()
sched_getscheduler()
Ceder el procesador
sched_yield()
Obtener los lmites de los parmetros de planificacin
sched_get_priority_max()
sched_get_priority_min()
sched_get_priority_rr_get_interval()
UdelC - Telemtica
56
Funciones de planificacin de hilos
Arributos de planificacin para la creacin de hilos
pthread_attr_setscope()
pthread_attr_getscope()
pthread_attr_setinheritsched()
pthread_attr_getinheritsched()
pthread_attr_setschedpolicy()
pthread_attr_getschedpolicy()
pthread_attr_setschedparam()
pthread_attr_getschedparam()
Acceso dinmico a los parmetros de planificacin
de los hilos
pthread_setschedparam()
pthread_getschedparam()
29
UdelC - Telemtica
57
Planificacin de la sincronizacin
Atributos de planificacin para la creacin de mutex
pthread_mutexattr_setprotocol()
pthread_mutexattr_getprotocol()
pthread_mutexattr_setprioceiling()
pthread_mutexattr_getprioceiling()
Cambio del Techo de Prioridad de un mutex
pthread_mutex_setprioceiling()
pthread_mutex_getprioceiling()
UdelC - Telemtica
58
Temario
Requisitos temporales y planificacin
Planificacin Montona en Frecuencia
Interaccin entre tareas y otros factores
Planificacin en POSIX
Planificacin en RT-Java
30
UdelC - Telemtica
59
Planificacin en RT-Java
La especificacin de RT-Java exige:
Planificacin expulsiva con prioridades fijas
Mnimo 28 prioridades nicas
Los hilos de tiempo real extienden la interfaz
Schedulable
public class RealtimeThread extends java.lang.Thread
implements Schedulable
Thread
RealtimeThread Hilos de TR
Schedulable
UdelC - Telemtica
60
Planificacin en RTJava
RTJava implementa el modelo de control de
prioridades para los hilos, a travs de la clase
MonitorControl() // PriorityCeilingEmulation and
PriorityInheritance
Para los hilos de la misma prioridad slo implementa
la poltica FIFO
Tambin permite especificar protocolos de prioridad
para los monitores que se implementan con
syncronized() usando la clase MonitorControl()
Los despachadores para planificacin de hilos
pueden implementarse a partir de la clase
Scheduler() y PriorityScheduler()
31
UdelC - Telemtica
61
Funciones de planificacin de hilos (RealtimeThread)
Boolean addIfFeasible()
Boolean addToFeasibility()
Boolean removeFromFeasibility()
Boolean setIfFeasible(ReleaseParameters release,
MemoryParameters memory)
Boolena setScheduler(Scheduler scheduler)
Boolean waitForNextPeriod()
Planificacin de la sincronizacin
PriorityCeilingEmulation(int ceiling)
PriorityInheritance()
Planificacin en RTJava
UdelC - Telemtica
62
Referencias (1)
A. Burns, A. Wellings. Real-Time Systems and their Programming
Languages. Addison-Wesley. 1992.
Jane W. S. Liu. Real-Time Systems. Prentice-Hall. 2000.
C. Liu and J. Layland. Scheduling Algorithms for Multiprogramming in
a Hard Real-Time Environment. Journal of the ACM, Vol. 20 No. 1,
January 1973.
J. Lehoczky, L. Sha, and Y. Ding. The Rate-Monotonic Scheduling
Algorithm: Exact Characterization and Average Case Behavior. Proc.
of the 10th IEEE Real-Time Systems Symp. RTSS89, IEEE CS Press.
Dec. 1989.
L. Sha, R. Rajkumar and J. Lehoczky. Priority Inheritance Protocols:
An Approach to Real-Time Synchronization. IEEE Transactions on
Software Engineering, Vol. 39, No. 3, Sep. 1990.
J. Lehoczky, L. Sha, J.K. Strosnider and H. Tokuda. Fixed Priority
Scheduling Theory for Hard Real-Time Systems. En: A.M. Van Tilborg
y G.M. Koob (Eds.). Foundations of Real-Time Computing. Scheduling
and Resource Management. Kluwer Academic Publishers. 1991.
32
UdelC - Telemtica
63
Referencias (2)
N. Audsley and A. Burns. Real-Time System Scheduling. Department
of Computer Science, University of York, Report YCS 134. Jan 1990.
The Real-Time for Java Expert Group. The Real-Time specification for
Java. Addison-Wesley. 2000. http://www.rtj.org
J.A. de la Puente. Transparencias sobre sistemas de tiempo real.
Universidad Politcnica de Madrid. 2001.
M. Daz. Transparencias del curso Diseo Orientado a Objeto para
Sistemas de Tiempo Real. Universidad de Mlaga. 2001.
Jos Luis Villarroel Salcedo. Transparencias del Curso Sistemas de
Tiempo Real. Universidad de Zaragoza. 2001.