Análisis y Verificación Formal de Planificadores para ... · PDF...
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, ¶m1);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, ¶m2);
//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