You are on page 1of 53

Programacin Concurrente y

Tiempo Real

Tema 5. Planificacin en Sistemas de Tiempo Real


D. Vallejo, M.A. Redondo, C. Villarrubia,
F.J. Villanueva, J. Ruiz

Escuela Superior de Informtica


Universidad de Castilla-La Mancha

Curso 2016/2017 Grado en Ingeniera Informtica


Tema 5. Planificacin en STR

1. Introduccin [Burns 12]


2. Concepto de tiempo real [Burns 12]
3. Esquemas de planificacin [Burns 13]
4. Aspectos relevantes de un planificador
[Burns 13]

Curso 2016/2017 Grado en Ingeniera Informtica


Tema 5. Planificacin en STR

1. Introduccin [Burns 12]


2. Concepto de tiempo real [Burns 12]
3. Esquemas de planificacin [Burns 13]
4. Aspectos relevantes de un planificador
[Burns 13]

Curso 2016/2017 Grado en Ingeniera Informtica


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Introduccin

Ejecucin de tareas/procesos/hilos

Aumento de la productividad

Restricciones temporales
Necesidad de determinismo

T5 Planificacin en Sistemas de Tiempo Real Trp 4


Tema 5. Planificacin en STR

1. Introduccin [Burns 12]


2. Concepto de tiempo real [Burns 12]
2.1. Mecanismos de representacin [12.2, 12.3]
2.2. Control de requisitos temporales [12.4]

3. Esquemas de planificacin [Burns 13]


4. Aspectos relevantes de un planificador
[Burns 13]

Curso 2016/2017 Grado en Ingeniera Informtica


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Gestin del tiempo real

Interfaz con el tiempo.


Relojes, retardos, temporizadores y

restricciones de tiempo
Implementados en Ada 95

Representacin de requisitos temporales.

Satisfaccin de requisitos temporales


(planificacin)

T5 Planificacin en Sistemas de Tiempo Real Trp 6


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Mecanismos de representacin

Relojes
Permiten medir el tiempo real
Hardware y/o Software

Resolucin.

Granularidad, exactitud y estabilidad.

Paso del tiempo desde un instante inicial

Ej. Relojes POSIX toman 1/1/1970

Cada lenguaje usa mecanismos apropiados


Ada.Real_Time, POSIX (time.h),
java.lang.System.currentTimeMillis

T5 Planificacin en Sistemas de Tiempo Real Trp 7


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Mecanismos de representacin

Abstraccin de reloj en Ada

Calendar

Real_Time

T5 Planificacin en Sistemas de Tiempo Real Trp 8


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Midiendo en Ada 95

declare
T_Inicial, T_Final : Time;
Intervalo : Duration;
begin
T_Inicial := Clock;
-- Aqu llamadas a funciones
-- y otros clculos.
T_Final := Clock;
-- Uso de operador -
Intervalo := T_Final - T_Inicial;
end

T5 Planificacin en Sistemas de Tiempo Real Trp 9


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Mecanismos de representacin

Retardos
Suspensin de una tarea durante un intervalo.

Relativo. Respecto al instante actual.


Ej.: 2 segundos.

delay <expresin del tipo duration>

Absoluto. Respecto a la hora global.


Ej.: hasta las 15:00 p.m 31/12/2015

delay until <expresin del tipo time>

Paquetes Ada.Calendar.Time y Ada.Real_Time.Time


T5 Planificacin en Sistemas de Tiempo Real Trp 10
Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Retrasos absolutos en Ada

Accion_1; -- Ejecucin de Accin 1.


delay 7.0;
Accion_2; -- Ejecucin de Accin 2.

Inicio := Clock;
Accion_1; -- Ejecucin de Accin 1.
Transcurrido := Clock - Inicio;
delay 7.0 (Transcurrido);
Accion_2; -- Ejecucin de Accin 2.

T5 Planificacin en Sistemas de Tiempo Real Trp 11


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Retrasos absolutos en Ada

Inicio := Clock;
Accion_1; -- Ejecucin de Accin 1.

delay until (Inicio + 7.0);

Accion_2; -- Ejecucin de Accin 2.

Deriva local y deriva acumulada

T5 Planificacin en Sistemas de Tiempo Real Trp 12


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Eliminando la deriva acumulada


declare
SiguienteLlamada : Time;
-- Tiempo medio de actualizacin.
Intervalo : constant Duration 5.0;

begin
SiguienteLlamada := Clock + Intervalo;

loop
Update;
-- Retraso absoluto.
delay until SiguienteLlamada;
SiguienteLlamada := SiguienteLlamada + Intervalo;
end loop;

end;
T5 Planificacin en Sistemas de Tiempo Real Trp 13
Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Control de requisitos temporales

Conviene delimitar y/o comprobar que no


se sobrepasan las restricciones temporales.

Concepto de timeout

Control temporal de un fragmento de


cdigo

Seccin crtica?

T5 Planificacin en Sistemas de Tiempo Real Trp 14


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Control de requisitos temporales

POSIX
#include <pthread.h>

int pthread_cond_timedwait(
pthread_cond_t *restrict cond,
pthread_mutex_t *restrict mutex,
const struct timespec *restrict abstime);

int pthread_cond_wait(
pthread_cond_t *restrict cond,
pthread_mutex_t *restrict mutex);

T5 Planificacin en Sistemas de Tiempo Real Trp 15


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Control de requisitos temporales

Tiempo bloqueo en semforo


if (sem_timedwait (empty, tiempo) < 0) {
if (errno == ETIMEDOUT) {
/* Tiempo cumplido */
}
else {
/* Otro error */
}
else {
/* Decremento realizado */
}

T5 Planificacin en Sistemas de Tiempo Real Trp 16


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Control de requisitos temporales

Ada (sentencia select)


Aceptaciones temporizadas en tareas
Llamadas temporizadas

Llamadas condicionales

Transferencias de control asncrona

select
delay 0.25;
then abort
TareaA;
end select;

T5 Planificacin en Sistemas de Tiempo Real Trp 17


Tema 5. Planificacin en STR

1. Introduccin [Burns 12]


2. Concepto de tiempo real [Burns 12]
3. Esquemas de planificacin [Burns 13]
3.1. Modelo simple de tareas [13.1]
3.2. Ejecutivo cclico [13.2]
3.3. Planificacin basada en procesos [13.3]

4. Aspectos relevantes de un planificador


[Burns 13]

Curso 2016/2017 Grado en Ingeniera Informtica


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Control del no determinismo

Planificacin o scheduling

Elementos relevantes

Algoritmo para ordenar el uso de recursos

Mecanismo de prediccin
Planteamiento pesimista

T5 Planificacin en Sistemas de Tiempo Real Trp 19


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Parmetros esenciales

Tiempo mximo de ejecucin (C)


Interferencia (I)
Bloqueo (B)
Deadline (D)
Tiempo de respuesta (R)
Periodo (T)
Prioridad (P)

T5 Planificacin en Sistemas de Tiempo Real Trp 20


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Tareas

Peridicas
Se ejecutan con un periodo determinado

Espordicas
Ejecutadas en base a un evento temporal
(slo conocemos la separacin mnima entre eventos)

T5 Planificacin en Sistemas de Tiempo Real Trp 21


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Planificacin en STR

1
Clculo Ri Para todo pi...

Sistema
planificable
2
Ri <= Di?

T5 Planificacin en Sistemas de Tiempo Real Trp 22


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo simple de tareas

Nmero fijo de procesos/tareas


Procesos peridicos con T conocido
Procesos independientes
Tiempo cambio contexto obviado
D=T
Esquema esttico de asignacin de P
Posibilidad de desalojo
C es conocido

T5 Planificacin en Sistemas de Tiempo Real Trp 23


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Ejecutivo cclico (EC)

Modelo replicable en el tiempo

El SO se remplaza por el EC:


No hay concurrencia

Ciclo principal o hiperperiodo (Tm)


T m =m.c.m. (T i ,i 1, 2, ... , n)

T5 Planificacin en Sistemas de Tiempo Real Trp 24


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Ejecutivo cclico
Ciclo secundario (Ts)

1.Todas las acciones deben caber en un marco.


2.Ts divide al menos al perodo de una tarea
(y por tanto al Tm )
3.Entre el instante de activacin y el tiempo lmite
de cada accin debe haber al menos un marco
completo (accin termina a tiempo?)

T5 Planificacin en Sistemas de Tiempo Real Trp 25


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Ejecutivo cclico (ejemplo)


Proceso Periodo (T) Tiempo de Ejecucin (C)
a 50 20
b 50 16
c 100 10
d 100 8
e 200 4

Tm = 200 ms

Tc = 50 ms

a b c a b d e a b c a b d

50 100 150 200

T5 Planificacin en Sistemas de Tiempo Real Trp 26


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Ejecutivo cclico

Consecuencias
Ciclo secundario = llamada a procedim.
Sin necesidad de exclusin mutua

Limitaciones
Integracin procesos espordicos
Procesos con T o C elevados

Construccin tediosa

Construccin problemtica

T5 Planificacin en Sistemas de Tiempo Real Trp 27


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Planificacin basada en procesos

Proceso a ejecutar en ti?

Esquemas a estudiar
Fixed Priority Scheduling (FPS)
Earliest Deadline First (EDF)

Nocin de apropiacin

T5 Planificacin en Sistemas de Tiempo Real Trp 28


Tema 5. Planificacin en STR

1. Introduccin [Burns 12]


2. Concepto de tiempo real [Burns 12]
3. Esquemas de planificacin [Burns 13]
4. Aspectos relevantes de un planificador
[Burns 13]
4.1. Asignacin de prioridades [13.3]
4.2. Anlisis del tiempo de respuesta [13.3 a 13.8]
4.3. Extendiendo el modelo simple [13.9 a 13.11]

Curso 2016/2017 Grado en Ingeniera Informtica


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Asignacin de prioridades

Rate monotonic (tasa monotnica)

i , j 1, 2,... , n (i j) , T i <T j Pi > P j


En el modelo simple, D = T
Coincide con Deadline Monotonic Scheduling
Menor deadline, mayor prioridad
ptimo para STR crticos

T5 Planificacin en Sistemas de Tiempo Real Trp 30


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de anlisis de R

Factor de utilizacin

Esquemas grficos

Modelo de clculo del tiempo de respuesta

T5 Planificacin en Sistemas de Tiempo Real Trp 31


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de anlisis de R

Factor de utilizacin (U)


N 1
Ci
( T )N (2 1) N

i=1 i

Proceso T C P U
a 50 10 1 0,2
b 40 10 2 0,25
c 20 5 3 0,25

T5 Planificacin en Sistemas de Tiempo Real Trp 32


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de anlisis de R

Esquemas grficos (diagrama de Gantt)

c b a c a c b a

0 10 20 30 40 50
Tiempo

T5 Planificacin en Sistemas de Tiempo Real Trp 33


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de anlisis de R

Esquemas grficos (lneas de tiempo)


Proceso

0 10 20 30 40 50
Tiempo
Instante de Instante de
En ejecucin Desalojado
activacin finalizacin

T5 Planificacin en Sistemas de Tiempo Real Trp 34


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de anlisis de R

Clculo del tiempo de respuesta (R)

1
Clculo Ri Para todo pi...

Sistema
planificable
2
Ri <= Di?

T5 Planificacin en Sistemas de Tiempo Real Trp 35


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de clculo de R

Ri=C i + I i

T5 Planificacin en Sistemas de Tiempo Real Trp 36


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de clculo de R

Ri=C i + I i

I i = ActivacionesC j
Ri
Ri I i = C j
Activaciones= Tj
Tj

T5 Planificacin en Sistemas de Tiempo Real Trp 37


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de clculo de R

Ri=C i + I i

I i = ActivacionesC j
Ri
Ri I i = C j
Activaciones= Tj
Tj
Ri
I i = ( C j)
j hp (i ) Tj
T5 Planificacin en Sistemas de Tiempo Real Trp 38
Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de clculo de R
Ri
Ri=C i + I i =C i + ( C j )
j hp (i ) Tj
I i = ActivacionesC j
Ri
Ri I i = C j
Activaciones= Tj
Tj
Ri
I i = ( C j)
j hp (i ) Tj
T5 Planificacin en Sistemas de Tiempo Real Trp 39
Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de clculo de R

Ri
Ri=C i + I i =C i + ( C j )
j hp (i ) Tj

Resolucin mediante
ecuacin de recurrencia

T5 Planificacin en Sistemas de Tiempo Real Trp 40


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de clculo de R
0
w =C i +
i (C j )
j hp (i ) Parar si...
0
w
w =C i + ( C j )
1
i
i
1 w
(n1 )
=w
n
j hp (i) Tj i i
1
w o si ...
w =C i + ( C j )
2 i
i
Tj n
j hp(i)
2 w > Di
i
...
(n 1)
wi
wi =C i + (
n
C j )
j hp(i) Tj
T5 Planificacin en Sistemas de Tiempo Real Trp 41
Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Modelo de clculo de R

Ejercicio propuesto

Proceso T C P
a 80 40 1
b 40 10 2
c 20 5 3

Es planificable el sistema?

T5 Planificacin en Sistemas de Tiempo Real Trp 42


Tema 5. Planificacin en STR

1. Introduccin [Burns 12]


2. Concepto de tiempo real [Burns 12]
3. Esquemas de planificacin [Burns 13]
4. Aspectos relevantes de un planificador
[Burns 13]
4.1. Asignacin de prioridades [13.3]
4.2. Anlisis del tiempo de respuesta [13.3 a 13.8]
4.3. Extendiendo el modelo simple [13.9 a 13.11]

Curso 2016/2017 Grado en Ingeniera Informtica


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Extendiendo el modelo simple

Tareas espordicas

D<T

Interaccin entre procesos/tareas

Pi > P j
Bloqueos (inversin de prioridad)

Ri=C i + I i + B i
T5 Planificacin en Sistemas de Tiempo Real Trp 44
Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Ejemplo de inversin de prioridad

Proceso P Activacin Secuencia ejec


a 1 0 ERRRRE
b 2 2 EE
c 3 2 ESSE
d 4 4 EERSE

Tiempo de bloqueo de d

a1 aR c1 cS d1 d2 cS c2 b1 b2 aR aR aR dR dS d3 a2

2 4 6 8 10 12 14 16

T5 Planificacin en Sistemas de Tiempo Real Trp 45


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Protocolo de herencia de prioridad

La prioridad de un proceso ser


el mximo de su propia prioridad
y las prioridades de otros procesos
que dependan del mismo

R
Bi = (utilizacin(r ,i)C k )
r =1

T5 Planificacin en Sistemas de Tiempo Real Trp 46


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Prioridades fijas con apropiacin

Proceso

d E E R S E Rd=12

c E S S E Rc=6

b E E Rb=8

a E R R R R E Ra=17

0 4 8 12 16 20

Instante de Instante de
En ejecucin Desalojado
activacin finalizacin

T5 Planificacin en Sistemas de Tiempo Real Trp 47


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Protocolo de herencia de prioridad

Proceso

d E E R S E Rd=9

c E S S E Rc=12

b E E Rb=14

a E R R R R E Ra=17

0 4 8 12 16 20
t
Instante de Instante de
En ejecucin Desalojado
activacin finalizacin

T5 Planificacin en Sistemas de Tiempo Real Trp 48


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Protocolo de herencia de prioridad

Ejercicio propuesto

Tarea T C D r1 r2 r3 r4
a 100 20 100 3 - - 5
b 200 20 200 2 2 - -
c 100 5 15 1 - - -
d 50 12 20 2 - 4 -

Es planificable el sistema?

T5 Planificacin en Sistemas de Tiempo Real Trp 49


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Protocolo de techo de prioridad inmediato

Protocolos de acotacin de prioridad

Propiedades

Pi inicial (e.g. DMS)


Cada r tiene un TP (prioridad mxima de los
j j
procesos que usan rj)
p prioridad dinmica (mximo entre P y los TP
i i j
de los recursos que tenga bloqueados)

T5 Planificacin en Sistemas de Tiempo Real Trp 50


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Protocolo de techo de prioridad inmediato

Bi =max {C j , k } j lp(i) k hc (i)


Consecuencias

Mximo un bloqueo por proceso


Sin cadenas de bloqueos ni interbloqueos

Una tarea hereda el TP de un recurso mientras lo

utiliza

T5 Planificacin en Sistemas de Tiempo Real Trp 51


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Protocolo de techo de prioridad inmediato

Proceso

d E E R S E Rd=6

c E S S E Rc=12

b E E Rb=14

a E R R R R E Ra=17

0 4 8 12 16 20 t

Instante de Instante de
En ejecucin Desalojado
activacin finalizacin

T5 Planificacin en Sistemas de Tiempo Real Trp 52


Intro | Tiempo Real | Esquemas Planificacin | Aspectos Planificacin

Protocolo de techo de prioridad inmediato

Ejercicio propuesto

Tarea T C D r1 r2 r3 r4
a 100 20 100 3 - - 5
b 200 20 200 2 2 - -
c 100 5 15 1 - - -
d 50 12 20 2 - 4 -

Es planificable el sistema?

T5 Planificacin en Sistemas de Tiempo Real Trp 53