Análisis y Verificación Formal de Planificadores para ... · PDF...

Post on 06-Mar-2018

226 views 3 download

Transcript of Análisis y Verificación Formal de Planificadores para ... · PDF...

Análisis y Verificación Formal de Planificadores para Sistemas Operativos

de Tiempo Real

Dr. Apolinar González Potes

Dr. Apolinar González PotesProfesor – InvestigadorUniversidad de Colima, Colima - México

Doctor en ComputaciónUniversidad Politécnica de Valencia, España

Maestría en Electrónica, Eléctrica y AutomáticaOpción: Informática IndustrialUniversidad Claude Bernard Lyon I, Francia

Ingeniería en Electrónica, Eléctrica y AutomáticaOpción: Informática IndustrialINSA - Universidad Claude Bernard, Lyon I, Francia

Sistema Nacional de Investigación: Nivel 1

Agenda

Introducción1

Planificadores Cíclicos2

Planificadores Estáticos y Dinámicos3

Modelo de Diseño Formal4

4 Análisis y Verificación Formal55

Introducción

Breve Descripción del Grupo de Investigación – Sistemas Inteligentes CA 46 clave SEP

AREAS:Sistemas Operativos de Tiempo RealSistemas Distribuidos de Tiempo RealDiseño de Sistemas de Tiempo RealDiseño de Sistemas Empotrados

Personal:4 Investigadores de Tiempo Completo2 Candidatos a doctorado12 Estudiantes de Maestría

Localización:Posgrado de la Facultad de Ingeniería Mecánica y Eléctrica

Cooperación: UPV, UAO, UCBL, CICESE, UdG, UFRGS, etc.InnovatiSS, FeintiSS, MNIS, Siteldi solutions, MECOPTIM, MIND, etc.

Proyectos

Introducción

Arquitectura segura - CONACYT

Redes de Sensores para el Rendimiento de Cultivos – INNOVAPIME 2012 – México - Centroamérica

UWEP – Francia - México

Open and cost-effective virtualization techniques and supporting separation kernel for the embedded systems industry

Introducción

Proyectos

Constructora Integral de Colima

DISEÑO DE REDES DE SENSORES EN ENTORNOS CAMBIANTES(CONCAYT – COLCIENCIAS)

DISEÑO y DESARROLLO DE APLICACIONES BASADAS EN REDES DE SENSORES – D2ARS (CYTED)

Sistema Distribuido Abierto y Seguro para la Optimización de Costos Energéticos y Mejora del Confort en Casas y Edificios (DomOptim)OSEO (Francia) – CONAYT (México)

Algunos Productos: 1.uDDS (Subconjunto del Middleware DDS –versión para Linux, PaRTikle)2.Subconjunto del WirelessHART3.Versión alpha XtratuM para ARM 94.PaRTiKle RTOS5.ERTL (Embedded Real Time Linux)6.etc

Proyectos

Introducción

Un sistema de tiempo real es un sistema informático en el que es significativo el tiempo en el que se producen sus acciones.

No es suficiente que las acciones del sistema sean correctas lógicamente, sino que, además, deben producirse dentro de un intervalo de tiempo determinado

Esto es debido a que el sistema está conectado a un proceso externo del que recibe estímulos a los que debe responder con suficiente rapidez para evitar que evolucione a un estado indeseable.

Los estímulos externos aparecen en instantes de tiempo no predecibles. Tiene que resolver distintas cosas a la vez (concurrentemente)

Definiciones

Introducción

Tamaño y complejidad • Afecta al software• La complejidad no sólo depende del tamaño• Posibilidad de realizar modificaciones• Descomposición en subsistemas pequeños y sencillos

• Afecta al software• La complejidad no sólo depende del tamaño• Posibilidad de realizar modificaciones• Descomposición en subsistemas pequeños y sencillos

Fiabilidad y seguridad • Un fallo puede tener repercusiones muyimportantes: perdidas humanas, económicas, etc.• Es necesario que si el sistema falla se le conduzcaa estados seguros que sean previsibles, y se tengan los medios para solucionarlo.

• Un fallo puede tener repercusiones muyimportantes: perdidas humanas, económicas, etc.• Es necesario que si el sistema falla se le conduzcaa estados seguros que sean previsibles, y se tengan los medios para solucionarlo.

Concurrencia • Programación concurrente• Distintas tareas accediendo a recursos comunes• Restricciones temporales• Planificación de tareas atendiendo a lasrestricciones temporales

• Programación concurrente• Distintas tareas accediendo a recursos comunes• Restricciones temporales• Planificación de tareas atendiendo a lasrestricciones temporales

Introducción

Tamaño y complejidad • Afecta al software• La complejidad no sólo depende del tamaño• Posibilidad de realizar modificaciones• Descomposición en subsistemas pequeños y sencillos

• Afecta al software• La complejidad no sólo depende del tamaño• Posibilidad de realizar modificaciones• Descomposición en subsistemas pequeños y sencillos

Fiabilidad y seguridad • Un fallo puede tener repercusiones muyimportantes: perdidas humanas, económicas, etc.• Es necesario que si el sistema falla se le conduzcaa estados seguros que sean previsibles, y se tengan los medios para solucionarlo.

• Un fallo puede tener repercusiones muyimportantes: perdidas humanas, económicas, etc.• Es necesario que si el sistema falla se le conduzcaa estados seguros que sean previsibles, y se tengan los medios para solucionarlo.

Concurrencia • Programación concurrente• Distintas tareas accediendo a recursos comunes• Restricciones temporales• Planificación de tareas atendiendo a lasrestricciones temporales

• Programación concurrente• Distintas tareas accediendo a recursos comunes• Restricciones temporales• Planificación de tareas atendiendo a lasrestricciones temporales

Introducción

Introducción

Introducción

Ejemplo: Asignación de prioridadesT1 = {20,100,100,0) 

T2 = {50,150,150,0) 

T3 = {100,300,300,0) 

Introducción

Ejemplo: Asignación de prioridadesT1 = {20,100,100,0) 

T2 = {50,150,150,0) 

T3 = {100,300,300,0) 

Introducción

Ejemplo: Asignación de prioridadesT1 = {20,100,100,0) 

T2 = {50,150,150,0) 

T3 = {100,300,300,0) 

Introducción

Ejemplo: Asignación de prioridadesT1 = {20,100,100,0) 

T2 = {40,150,150,0) 

T3 = {100,300,300,0) 

Introducción

Introducción

Introducción

Introducción

Introducción

Introducción

Introducción

Introducción

Introducción

Introducción

Los hilos de ejecución pueden ser creados y manejados:

Utilizando un lenguaje de programación convencional y llamadas al sistema.

Ejemplo: C y threads en POSIX

Utilizando construcciones lingüísticas (o clases) de un lenguaje de programación que admita concurrencia

Ejemplo: Tareas en Ada95, threads en Java

Utilización de hilos de ejecución

Hilos de ejecución (Threads)

Introducción

Threads en POSIX (i):

Devuelve el identificador del thread que la invoca.pthread_t pthread_self()

Suspende la ejecución del hilo que invoca esta llamada, hasta que el thread_id acabe.

pthread_join (thread_id)

El hilo que la invoca finaliza su ejecución.pthread_exit (status)

Crea un nuevo hilo de ejecución. El hilo

de ejecución empieza en func y se le

pasan los parámetros args.

pthread_create(thread_id, attr, func, args)DescripciónLlamada

Llamadas básicas

Introducción

Threads en POSIX (ii):

Un ejemplo

Introducción

#include <stdio.h>#include <pthread.h>#include <sched.h>#include <time.h>#define FIFOPOLICY SCHED_FIFO

void *task2(void *args) { int i,j; struct timespec delay1 = {0,500000000}; while(1){ printf("\n contando................"); for (i=1;i<=630000;i++) for (j=1;j<=500000;j++); printf("\n termina de contar "); printf (”\n ****** Soy t2 ******** ”); nanosleep(&delay1, NULL); }}

void *task1(void *args) { struct timespec delay2 = {0,500000000};

while(1){ printf (”\n ***** Soy t1 ************ “); nanosleep(&delay2, NULL); }}

int main (int argc, char **argv) { //variables Thread 1 pthread_t thread1;

pthread_attr_t attr1;int policy = FIFOPOLICY;struct sched_param param1;int priority1;

//parametros thread1pthread_attr_init(&attr1);pthread_attr_setschedpolicy(&attr1, policy);priority1 = 20;param1.sched_priority = priority1;pthread_attr_setschedparam(&attr1, &param1);pthread_create(&thread1, &attr1, task1, NULL);

Introducción

//variables Thread 2 pthread_t thread2;

pthread_attr_t attr2;struct sched_param param2;int priority2;

//parametros thread2pthread_attr_init(&attr2);pthread_attr_setschedpolicy(&attr2, policy);priority2 = 100;param2.sched_priority = priority2;pthread_attr_setschedparam(&attr2, &param2);

//creacion de los hilos printf("prioridad hilo 1: %d\n", priority1); printf("prioridad hilo 2: %d\n", priority2); pthread_create(&thread2, &attr2, task2, NULL); pthread_create(&thread1, &attr1, task1, NULL); pthread_join (task1, NULL); printf(" SE ACABO "); return 0;}

Introducción

Constructora Integral de Colima

Premisas:

1. En los sistemas de tiempo real no es suficiente que la lógica sea correcta2. Los programas deben satisfacer además los requisitos temporales

Preguntas:

1. Como construir un sistema para que satisfaga los requerimientos temporales ?2. Como verificar que los cumple ?.

Introducción

Existen dos caminos para abordar este tema:

1. Métodos de análisis de planificabilidad

Estudio de la factibilidad de planificar la carga de trabajo requeridasobre los recursos disponibles, de modo que se cumplan los requisitos temporales

2. Técnicas de descripción formal

Uso de notaciones y marcos de razonamiento formales para representar y analizar los requisitos temporales

Introducción

Planificadores Cíclicos

• Vamos a estudiar como planificar un sistema de tiempo real con el objeto de garantizar las restricciones temporales

• Lo normal es realizar el estudio situándonos en el peor caso (WCET)

• Análisis sistemas secuenciales• Análisis sistemas concurrentes

EjemploEjemplo

Control por computador de temperatura, nivel y pH de un depósito

Sensores

Actuadores

Interfaz

Planificadores Cíclicos

EjemploEjemploControl por computador de temperatura, nivel y pH de un depósito

Tarea: Control de temperatura (Control_Temp)Cada 5 segundos Leer_Sensor_Temp(Val_Temp) Calcular_Acción(Ref,Val_Temp,Acc_Temp,…) Aplicar_Acción(Acc_Temp)Antes de 2 segundos

Memori

a

E/SSensores

Actuadores

Interfaz

SensoresSensoresSensoresSensores

ActuadoresActuadoresActuadoresActuadores

InterfazInterfazInterfazInterfaz

Control_Temp

Control_Nivel

Control_pH

Visualizacion

Planificadores Cíclicos

EjemploEjemploControl por computador de temperatura, nivel y pH de un depósito

Tarea: Control de temperatura (Control_Temp)Cada 5 segundos Leer_Sensor_Temp(Val_Temp) Calcular_Acción(Ref,Val_Temp,Acc_Temp,…) Aplicar_Acción(Acc_Temp)Antes de 2 segundos

--Variables globales RegNivel, RegTemp, RegpH : Regulador; Nivel, Temp, pH : Float; Val_Salida, Val_Comp_Temp, Val_Comp_pH : Float;

procedure Control_Nivel isbegin Nivel := Leer_Sensor(Sensor); Calcular(Regniv, Nivel, Val_Salida); Enviar_Accion(Actuador, Val_Salida);end Control_Nivel;

Planificadores Cíclicos

procedure Controlar isbegin -- inicialización variables, reguladores, dispositivos T := clock; loop Control_Nivel; Control_Temp ; Control_pH; T:= T + Period ; delay until T; end loop;end Controlar;

t

0 5 10 15 20 25 30 35 40 45

Temp_Control pH_Control Level_Control

Planificadores Cíclicos

loop Control_Temp ; if ((Cnt mod 2) = 0) then Control_Nivel; Control_pH; end if ; Cnt := Cnt + 1 ; T := T + Period ; delay until T ;end loop;

Ciclo principal = 10 ms; secundario = 5 ms

t

0 5 10 15 20 25 30 35 40 45

Temp_Control pH_Control Level_Control

Planificadores Cíclicos

Pi = (Ci, Ti, Di, Ii)

Un actividad de tiempo real se caracteriza por una serie de parámetros temporales que determinan sus restricciones temporales de ejecución

Ii Ti

Di

Ci

Tarea i

t

Caracterización

Planificadores Cíclicos

• Un planificador proporciona un algoritmo o política de gestión de procesos.• Un conjunto de procesos es factible de ejecutar si existe un planificador que cumpla las restricciones o precondiciones.• En sistemas de tiempo real crítico, la precondición son los plazos límites• Un planificador es óptimo si es capaz de producir una planificación factible para todos los procesos. Es óptimo si puede planificar todos los conjuntos de procesos que cualquier otro puede.• Se utilizan de algoritmos ad-hoc, estáticos y dinámicos.

Planificación de Sistemas de Tiempo Real

Planificadores

•Cada Actividad ti puede verse como una tupla (Ci,Ti,Di,Ii)• Ci es su tiempo de cómputo de peor caso• Ti es el periodo de la tarea• Di es su plazo máximo de ejecución• Ii es el defase inicial

•Si todas las tareas t1..tn son periódicas, se puede confeccionar un plan de ejecución fijo que se repite cada ciclo principal TM•La duración del ciclo principal es la del hiperperiodo

H=mcm(Ti), i=1..n•El ciclo principal se divide en ciclos secundarios, cada uno de duración TS tal que TM = kTS

• En cada ciclo secundario se ejecutan las actividades correspondientes a determinadas tareas

Planificadores

• Ejemplo 1– t1: C1 = 4 ms; T1 = 20 ms; D1 = 20 ms

– t2: C2 = 5 ms; T2 = 40 ms; D2 = 40 ms

– Elegimos• TM = mcm(20,40) = 40 ms

• TS = 20 ms

TM

TS

t1

t2

0 10 20 30 40 50 60 70 80

TS

TM

TS TS

Planificadores

• El diseño del plan consiste en determinar sus parámetros:– Duración del ciclo principal Tp– Duración del ciclo secundario Ts– Ordenación de las tareas

• Debe tener en cuenta las restricciones temporales impuestas por el conjunto de tareas– La duración del ciclo principal es igual al hiperperiodo– Hay que elegir un ciclo secundario adecuado

• Por ejemplo, TS no puede ser menor que el tiempo de cómputo de ninguna tarea

Diseño del plan cíclico

Planificadores Cíclicos

Di = TiTi

• 3.- Debe haber un TS completo entre el instante de activación y el plazo de cualquier tarea

Ts

Ts

Ts

Ti

Ts Ts1

Planificadores Cíclicos

• No hay concurrencia en la ejecución• Los procedimiento pueden compartir datos sin

temor a posibles errores, ya que la exclusión mutua esta garantizada por la construcción

• Los periodos deben ser armónicos, esto puede implicar utilizar periodos más cortos de lo necesario

• No hace falta análisis del comportamiento temporal

• Problemas:– Tareas esporádicas– Construir el plan cíclico– Poco flexible y difícil de mantener

Planificadores Cíclicos

Sist. TR

CíclicosCíclicos Prioridades

Estáticas Dinámicas

Rate Monotonic

RM

Deadline Monotonic

DM

Earliest Deadline

First EDF

LeastLaxity First

LLF

Clasificación de Planificadores

•La planificación estática requiere una asignación a priori de la importancia (prioridad) de las tareas.

•Existe un planificador (basado en prioridades) que se encarga de ejecutar en cada instante de tiempo aquella tarea con la mayor importancia (prioridad)

•Las tareas pueden ser expulsadas cuando una tarea de mayor prioridad pasa a un estado de preparada

Planificadores Estáticos

Planificadores

4321

Espera

Ejecución

Preparado

Terminado

Nuevo

5

Planificadores Estáticos

T1 Di CiT1 10 6 3

T2 15 10 3

T3 18 15 2

T4 24 24 5

T1

T2

T3

T4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Planificadores

•La planificación dinámica no requiere una asignación a priori de la importancia de las tareas.

•El criterio de selección de la tarea es dinámico. Por ejemplo: aquella tarea con plazo más corto (earliest deadline first –EDF-)

•Existe un planificador que se encarga de ejecutar en cada instante de tiempo aquella tarea que cumpla mejor el criterio (urgencia)

•Las tareas pueden ser expulsadas cuando una tarea de mayor urgencia pasa a un estado de preparada

Planificadores Dinámicos

Planificadores

Ejecución

Preparado

Espera

TerminadoNuevo

Planificadores Dinámicos

T1

T2

T3

T4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

T1 Di CiT1 10 6 3

T2 15 10 3

T3 18 15 2

T4 24 24 5

Planificadores

T1

T2

T3

T4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

T1

T2

T3

T4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Estática

Dinámica

T1 Di CiT1 10 6 3

T2 15 10 3

T3 18 15 2

T4 24 24 5

Planificadores

Lyu & Layland

Pi = (Ci, Ti, Di, Ii)

El peor caso se produce para t=0 con Ii=0.

Se denomina Instante crítico.

0 1 2 3 4 5 ... K-1 K ...........

IiTi

Di

Ci

Tarea i

t

Análisis de Planificabilidad

La k-ésima activación de la tarea i se produce a partir del instante:

Ii + (k-1)Ti

y tiene que finalizar antes de

Ii + (k-1)Ti + Di

Planificadores

Teoría monotónico en frecuencia (RM)

• La prioridad se asigna en función del periodo• A menor periodo -> mayor prioridad (mayor prioridad el más frecuente)

• Pueden existir múltiples asignaciones de prioridades a tareas que permitan cumplir las restricciones de tiempo.• Cuando el número de tareas es reducido el tiempo necesario para la determinación no será grande.• En cualquier caso, se trata de un problema NP-Completo

Existe una forma fácil (lógica) de asignar prioridades para la cual hay desarrollada una teoría que permite determinar analíticamente si el sistema será planificable o no.

Factor de utilización de la CPU de una Tarea i

Asignación de prioridades

Ui

Ci

Ti

Planificadores

n U(n)1 1,002 0,823 0,774 0,755 0,74... ...∞ 0,69

Para n tareas:

Análisis de planificabilidad:Test de factores de utilización

Test de planificabilidad basado en la utilización (Liu & Layland, 73):

Un conjunto de n tareas es planificable si se cumple:

Esta expresión establece un límite de utilización de la CPU

Es una condición suficiente pero no necesaria

00,10,20,30,40,50,60,70,80,9

1

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43

)12()(...1

2

2

1

1 −⋅=≤+++ n

n

n nnUT

C

T

C

T

C

Planificadores

C1 = 2 T1 = 10 U1 = 0.2C2 = 4 T2 = 15 U2 = 0.267C3 =10 T3 = 35 U3 = 0.286 U1 + U2 + U3 = 0.753

Uso total 75.3 % < U(3) = 77.9 %

24.7 % de la CPU se puede utilizar para cálculos sin req. temporales a más baja prioridad.

Análisis de planificabilidad: Test de factores de utilización

Ejemplo 1

Planificadores

C1 = 2 T1 = 10 U1 = 0.2C2 = 4 T2 = 15 U2 = 0.267C3 = 5 T3 = 25 U3 = 0.2C4 = 6 T4 = 35 U4 = 0.17 U1 + U2 + U3 + U4 = 0.837

Uso total 83,7 % > U(4) = 75.6 % No cumple

Análisis de planificabilidad: Test de factores de utilizaciónEjemplo 2

Pero el sistema es planificable

Planificadores

• La prueba del test de finalización es condición suficiente, pero no necesaria

• No se puede generalizar a modelos de tareas más complejos

• No da una estimación de cuándo termina

Análisis de planificabilidad:Test de factores de utilización

Planificadores

• Teorema: Un conjunto de “n” tareas será planificable bajo cualquier asignación, si y sólo si:

Análisis de planificabilidad:Test de Tiempo de Finalización

• Si una tarea cumple su primer plazo de ejecución en el peor caso.• El tiempo de finalización de peor caso de cada tarea ocurre cuando todas las tareas de prioridad superior se inician a la vez que ésta.

Planificadores

Análisis de planificabilidad:Test de Tiempo de Finalización

Se trata de calcular en qué instante de tiempo termina la ejecución de una tarea ti. Este tiempo viene determinado por:

1. Su tiempo de ejecución Ci2. Para cada tarea tj de mayor prioridad que la ti, la suma de

todas las interferencias que se producen

T1

T2

6

Función techo

3310

612 =⋅

=

=

I

CT

WI j

j

iji

Planificadores

Análisis de planificabilidad:Test de Tiempo de Finalización

Se trata de calcular en qué instante de tiempo termina la ejecución de una tarea ti. Este tiempo viene determinado por:

1. Su tiempo de ejecución Ci2. Para cada tarea tj de mayor prioridad que la ti, la suma de

todas las interferencias que se producenEn general, el conjunto de tareas con mayor prioridad a una dada i, es hp(i). Por lo tanto la interferencia que sufrirá una tarea i vendrá determinada por:

jihpj j

ii C

T

WI ⋅

= ∑

∈ )(

Planificadores

Análisis de planificabilidad:Test de Tiempo de Finalización

El tiempo de finalización de una tarea ti, será:

Esta ecuación se puede calcular de una forma iterativa.

Condición de terminación:

Condición de no cumplimiento:

jihpj j

iii C

T

WCW ⋅

+= ∑

∈ )(

ii CW =0

jihpj j

ni

in

i CT

WCW ⋅

+= ∑

+

)(

1

ni

ni WW =+1

in

i TW ≤+1

Planificadores

Análisis de planificabilidad:Test de Tiempo de Finalización

• Un conjunto de “n” tareas será planificable si y sólo si:

Solución iterativa

TW iini ≤≤≤∀ ,1

i i

i ii

jj hp ij

i ii

jj hp ij

i

k

i

k

W C

W C WT C

W C WT C

W W

0

10

21

1

=

= +

= +

=

∀ ∈

∀ ∈

+

∑( )

( )

.................................

Planificadores

Análisis de planificabilidad:Test de Tiempo de Finalización

T1

T2

T3

T4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

T1 Di CiT1 10 10 3

T2 15 15 3

T3 18 18 2

T4 24 24 510 30

3

11

1

1

1

0

1

=≤=+=

==

TCWCW

jihpj j

iii C

T

WCW ⋅

+= ∑

∈ )(

Planificadores

T1

T2

T3

T4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

T1 Di CiT1 10 10 3

T2 15 15 3

T3 18 18 2

T4 24 24 5

156

6310

63

6310

33

3

2

2

2

1

2

}1{

1

22

2

2

}1{

0

22

1

2

2

0

2

=≤==

=

+=

+=

=

+=

+=

==

∈∀

∈∀

TWW

TWCW

TWCW

CW

j j

j j

Análisis de planificabilidad:Test de Tiempo de Finalización

jihpj j

iii C

T

WCW ⋅

+= ∑

∈ )(

Planificadores

T1

T2

T3

T4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

T1 Di CiT1 10 10 3

T2 15 15 3

T3 18 18 2

T4 24 24 5

188

8315

83

10

82

8315

23

10

22

2

3

2

2

1

3

}2,1{

1

33

2

3

}2,1{

0

33

1

3

3

0

3

=≤==

=

+

+=

+=

=

+

+=

+=

==

∈∀

∈∀

TWW

TWCW

TWCW

CW

j j

j j

Análisis de planificabilidad:Test de Tiempo de Finalización

jihpj j

iii C

T

WCW ⋅

+= ∑

∈ )(

Planificadores

T1

T2

T3

T4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

T1 Di CiT1 10 10 3

T2 15 15 3

T3 18 18 2

T4 24 24 5

2424

24218

243

15

243

10

245

24218

213

15

213

10

215

21218

193

15

193

10

195

19218

163

15

163

10

165

16218

133

15

133

10

135

13218

53

15

53

10

55

5

4

5

4

6

4

}3,2,1{

5

44

6

4

}3,2,1{

4

44

5

4

}3,2,1{

3

44

4

4

}3,2,1{

2

44

3

4

}3,2,1{

1

44

2

4

}3,2,1{

0

44

1

4

4

0

4

=≤==

=

+

+

+=

+=

=

+

+

+=

+=

=

+

+

+=

+=

=

+

+

+=

+=

=

+

+

+=

+=

=

+

+

+=

+=

==

∈∀

∈∀

∈∀

∈∀

∈∀

∈∀

TWW

TWCW

TWCW

TWCW

TWCW

TWCW

TWCW

CW

j j

j j

j j

j j

j j

j j

Análisis de planificabilidad:Test de Tiempo de Finalización

jihpj j

iii C

T

WCW ⋅

+= ∑

∈ )(

Planificadores

Lyu & Layland

1. Tareas son periodicas, no se autosuspenden, plazos de entrega igual al periodo con plazos arbitrarios

2. Pueden ser expulsadas, cambio de contexto is despreciable

3. Tareas son independientes. El peor caso es conocido (WCET).

Análisis de Planificabilidad

Determinación off-line de si el sistema va a cumplir las restricciones temporales

Supuestos iniciales

Planificadores

Deadline Monotonic (DM)

Cuando se tienen plazos arbitrarios (Di <=Ti) hay una forma óptima de asignar prioridades: Monotónico con el plazo.

Asignación de prioridades

• Asigna prioridades inversamente proporcionales al plazo de finalización.

• Se puede emplear el test de los plazos de finalización para garantizar la planificabilidad.

• El RM se convierte en un caso especial del DM (en el que los plazos son iguales al periodo).

• El RM es óptimo entre los planificadores estáticos.

Si un conjunto de tareas con prioridades asignadas según el DM no es planificable, entonces ninguna otra forma de asignar prioridades lo hará planificable

DM

RM

Planificadores

•Cuando existen plazos menores que el periodo.•Asignación de prioridades por orden creciente de plazo.•Prioridad más alta al menor plazo.

Análisis de Planificación

Los tiempos de finalización se calculan de la misma forma, pero la condición de planificación considera el plazo en vez del periodo.

Condición de terminación:

Condición de cumplimiento:

ii CW =0

jihpj j

ni

in

i CT

WCW ∑

+

+=

)(

1

ni

ni WW =+1

in

i DW ≤+1

Planificadores

Resumen1. Se parte de un conjunto de tareas periódicas en el que:

• las aperiódicas críticas => periódicas• Las aperiódicas no críticas => agrupan en servidores

aperiódicos2. Se asignan prioridades a las tareas según distintos criterios

• Importancia semántica• Monotónico con el plazo (periodo)

3. Se asignan prioridades a los recursos compartidos (techo de prioridad)

4. Se determina la planificabilidad del sistema1. Mediante el test de utilización (sólo en el caso de plazos =

periodos y asignación monotónica)2. Mediante el test de finalizaciónSi el sistema no es planificable se puede incrementar los periodos ya

que el periodo de una tarea está dentro de un rango.

Planificadores

Lyu & Layland

1. Tareas son periodicas, no se autosuspenden, plazos de entrega igual al periodo con plazos arbitrarios

2. Pueden ser expulsadas, cambio de contexto is despreciable

3. Tareas son independientes. El peor caso es conocido (WCET).

Análisis de Planificabilidad

Determinación off-line de si el sistema va a cumplir las restricciones temporales

Supuestos iniciales

Planificadores

Lyu & Layland

1. Tareas son periodicas, no se autosuspenden, plazos de entrega igual al periodo con plazos arbitrarios

2. Pueden ser expulsadas, cambio de contexto is despreciable

3. Tareas son independientes. El peor caso es conocido (WCET).

Análisis de Planificabilidad

Determinación off-line de si el sistema va a cumplir las restricciones temporales

Supuestos iniciales

Planificadores

Requerimientos del Sistema

Especificación

Diseño

ImplementaciónTécnica global

Modelo de Diseño Formal

Requisitos del Sistema

Especificación Implementación

Basado en componentes

Especificación global

Modelo de Diseño Formal

Modelo de Diseño Formal

Modelo de Diseño Formal

Los componentes se definen como elementos con atributos, comportamientos y estados, a disposición del usuario para especificar y diseñar un sistema. En términos generales, representan lugares de cómputo.

+-

Modelo de Diseño Formal

Modelo de Diseño Formal

Requisitos básicos:

Describir el diseño empleando las técnicas de desarrollo para sistemas orientado a objetos.Representar aspectos de la solución del problema relacionado con la estructura y funcionalidad del diseño.Soportar los aspectos de reusabilidad del software.Permitir definir soluciones a los problemas de restricciones temporales y estar bien definidos en el dominio de los sistemas de control en tiempo real. Soportar un estilo arquitectónico para el diseño de aplicaciones

Componentes

Descripción

Nombre: NOMBRE DEL COMPONENTE

Interfaz Ofrecida: Requerimientos:Servicios que ofrece Servicios requeridos

Parámetros de configuración:Parámetros necesarios de configuración y/o atributos del componente

Servicios ofrecidos:Lista de servicios o posibilidades ofrecidas por el componente

ServiciosOfrecidos

ServiciosRequeridos

Configuración

NOMBRE

Modelo de Diseño Formal

Componentes

Actividades

Mecanismos de coordinación

Específicos

Genéricos

Sincronización

Comunicación

Entrada/Salida

Código

Periódica

Periódica con plazo de entrega

Periódica con computación opcional

Periódica con cambio de modo

Aperiódica

Servidora

Barrera

Señal

Cerrojo

Pulso

Evento

Cita

Almacén limitado

Pizarra

Buzón

Multiemisión

Dato compartido

Transportador

Interrupción frecuencia fija

Interrupción intervalo temporal

Convertidor muestreo

Convertidor interrupción

Selección temporizada

Selección múltiple

Secuencia

Pasivo simple

Lector/Escritor

Protegido genérico

Caracterización de Componentes

Modelo de Diseño Formal

HLTPN

Características:

Definición:

HLTPN es una tupla (P,T,pre, post), donde:

P: Lugares

T: TransicionesTPpre ×⊆PTpost ×⊆

Análisis y Verificación Formal

Tareas periódicas

Análisis y Verificación Formal

Análisis y Verificación Formal

Tareas periódicas con computación opcional

Análisis y Verificación Formal

Planificador Expulsivo Basado en Prioridades (POSIX)

Análisis y Verificación Formal

Análisis y Verificación Formal

Análisis y Verificación Formal

Análisis y Verificación Formal

T 1 _ 1

T 1 _ 2

T 1 _ 3 T 1 _ 4

T 1 _ 5

T 1 _ 6

T 1 _ 7

T 1 _ 9

t r 3 _ 1 0

t r 1 _ 1

t r 1 _ 3 t r 1 _ 2

t r 1 _ 4 t r 1 _ 5

t r 1 _ 6

t r 1 _ 8

T 3 _ 1 3

W B 1 C t e r B 1

C t B 1

P A B 1

e B 1

l B 1

f u l l B 1 = 0 B 1 E x i t B 1

T 2 _ 1

T 2 _ 2

T 2 _ 3 T 2 _ 4

T 2 _ 5

T 2 _ 6

T 2 _ 7

T 2 _ 9

S _ T 3

t r 2 _ 1

t r 2 _ 3 t r 2 _ 2

t r 2 _ 4

t r 2 _ 5

t r 2 _ 6

t r 2 _ 8

t r 2 _ 9

T 3 _ 1

T 3 _ 2

T 3 _ 3 T 3 _ 4

T 3 _ 5

T 3 _ 7

T 3 _ 9

S C H A

s t 2 _ 1

t r 3 _ 1

t r 3 _ 3 t r 3 _ 2

t r 3 _ 4

t r 3 _ 6

t r 3 _ 7

t r 3 _ 9

s t 2 _ 2

E x i t L 1

T 3 _ 8

L L 1

S C H C

P R O C

s c h 5

s c h 1

T L 1

s c h 7

e v a l 1 _ T 2

S t a t e L 1

T W L 1 e L 1

a r r i v a l L 1

e v a l 1 _ T 1

e v a l L 1

e v a l 1 _ T 3

S C H B

e v a l 2 _ T 3

e v a l 2 _ T 2

t r 3 _ 8

e v a l 2 _ T 1

s c h 3 s c h 4 S C H O R D

S C H D

T 3 _ 1 0

s c h 2

S C H E

S C H F

s c h 6

n o n _ a s s i g n

E F O P R W 1

P 8 0

T I 1

t r 1 _ 7

T 1 _ 8

T 2 _ 1 0

t r 2 _ 7

T 2 _ 8

S C 1

e r w C 1

E x i t F O P R W 1

E P O P R W 1

T F 1

T A 1

R W C 1

E x i t R W C 1 E x C 1

C R W 1 r C 1

l C 1

w C 1

s t 1 _ 1

s t 1 _ 2

T I 2

S _ T 1

S e n t e n c e s 1

t r 1 _ 1 0

t r 3 _ 5

T 3 _ 6

T 1 _ 1 1

P O P R W 13

E x i t P O P R W 1

B u f O P R W 1

R e q O P R W 1

W a i t O P R W 1

E m p t y O P R W 1 F O P R W 12

C t F O P R W 1

E x e c F O P R W 1

e _ F O P R W 1

e _ P O P R W 1

s e l O P R W 1

c a l l F 1 O P R W 1

c a l l F 2 O P R W 1 n F O P R W 1

R e c O P R W 1

E n d F O P 1

C a l l P O P R W 1

E x e c P O P R W 1

e n d P O P R W 1

t r 1 _ 9 T 1 _ 1 0

t r 1 _ 1 1 T 1 _ 1 2

t r 1 _ 1 2 T 1 _ 1 3

T F 2

T A 2

s t 3 _ 1

s t 3 _ 2

S e n t e n c e s 2

T I 3 T F 3

T A 3

s t 1 _ 3

s t 2 _ 3

s t 3 _ 3

s e n t 2 t r 2 _ 1 0

T 2 _ 1 1

t r 2 _ 1 1 T 2 _ 1 2

t r 2 _ 1 2 T 2 _ 1 3

S _ T 2

E x i t S e n t 2

s e n t 1

E x i t S e n t 1

T 1 1

T 1 2

T 2 1

T 2 2

T 3 1

T 3 2

S e n t e n c e s 3

E x i t S e n t 3

S e n t 3

T 3 _ 1 1

t r 3 _ 1 1 T 3 _ 1 2

t r 3 _ 1 2

Análisis y Verificación Formal

Análisis y Verificación Formal

Análisis y Verificación Formal

www.themegallery.com