Análisis y Verificación Formal de Planificadores para Sistemas Operativos de Tiempo Real Dr. Apolinar González Potes
Dr. Apolinar González Potes Profesor Investigador Universidad de Colima, Colima - México Doctor en Computación Universidad Politécnica de Valencia, España Maestría en Electrónica, Eléctrica y Automática Opción: Informática Industrial Universidad Claude Bernard Lyon I, Francia Ingeniería en Electrónica, Eléctrica y Automática Opción: Informática Industrial INSA - Universidad Claude Bernard, Lyon I, Francia Sistema Nacional de Investigación: Nivel 1
Agenda 1 Introducción 2 Planificadores Cíclicos 3 Planificadores Estáticos y Dinámicos 4 Modelo de Diseño Formal 5 5 4 Análisis y Verificación Formal
Introducción Breve Descripción del Grupo de Investigación Sistemas Inteligentes CA 46 clave SEP AREAS: Sistemas Operativos de Tiempo Real Sistemas Distribuidos de Tiempo Real Diseño de Sistemas de Tiempo Real Diseño de Sistemas Empotrados Personal: 4 Investigadores de Tiempo Completo 2 Candidatos a doctorado 12 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.
Introducción Proyectos Redes de Sensores para el Rendimiento de Cultivos INNOVAPIME 2012 México Centroamérica Arquitectura segura - CONACYT UWEP Francia - México
Introducción Proyectos Open and cost-effective virtualization techniques and supporting separation kernel for the embedded systems industry
Introducción Proyectos 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 WirelessHART 3.Versión alpha XtratuM para ARM 9 4.PaRTiKle RTOS 5.ERTL (Embedded Real Time Linux) 6.etc Constructora Integral de Colima
Introducción Definiciones 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)
Introducción Tamaño y complejidad Fiabilidad y seguridad Concurrencia Afecta Afectaalalsoftware software La complejidad La complejidadno nosólo sólodepende dependedel deltamaño tamaño Posibilidad de realizar modificaciones Posibilidad de realizar modificaciones Descomposición Descomposiciónen ensubsistemas subsistemaspequeños pequeños yysencillos sencillos Un Unfallo fallopuede puedetener tenerrepercusiones repercusionesmuy muy importantes: perdidas humanas, económicas, importantes: perdidas humanas, económicas,etc. etc. Es necesario que si el sistema falla se le conduzca Es necesario que si el sistema falla se le conduzca aaestados estadosseguros segurosque quesean seanprevisibles, previsibles,yyse se tengan los medios para solucionarlo. tengan los medios para solucionarlo. Programación Programaciónconcurrente concurrente Distintas tareas Distintas tareasaccediendo accediendoaarecursos recursoscomunes comunes Restricciones temporales Restricciones temporales Planificación Planificaciónde detareas tareasatendiendo atendiendoaalas las restricciones temporales restricciones temporales
Introducción Tamaño y complejidad Fiabilidad y seguridad Concurrencia Afecta Afectaalalsoftware software La complejidad La complejidadno nosólo sólodepende dependedel deltamaño tamaño Posibilidad de realizar modificaciones Posibilidad de realizar modificaciones Descomposición Descomposiciónen ensubsistemas subsistemaspequeños pequeños yysencillos sencillos Un Unfallo fallopuede puedetener tenerrepercusiones repercusionesmuy muy importantes: perdidas humanas, económicas, importantes: perdidas humanas, económicas,etc. etc. Es necesario que si el sistema falla se le conduzca Es necesario que si el sistema falla se le conduzca aaestados estadosseguros segurosque quesean seanprevisibles, previsibles,yyse se tengan los medios para solucionarlo. tengan los medios para solucionarlo. Programación Programaciónconcurrente concurrente Distintas tareas Distintas tareasaccediendo accediendoaarecursos recursoscomunes comunes Restricciones temporales Restricciones temporales Planificación Planificaciónde detareas tareasatendiendo atendiendoaalas las restricciones temporales restricciones temporales
Introducción
Introducción
Introducción Ejemplo: Asignación de prioridades T1 = {20,100,100,0) T2 = {50,150,150,0) T3 = {100,300,300,0)
Introducción Ejemplo: Asignación de prioridades T1 = {20,100,100,0) T2 = {50,150,150,0) T3 = {100,300,300,0)
Introducción Ejemplo: Asignación de prioridades T1 = {20,100,100,0) T2 = {50,150,150,0) T3 = {100,300,300,0)
Introducción Ejemplo: Asignación de prioridades T1 = {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 Hilos de ejecución (Threads) Utilización de hilos de ejecució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
Introducción Threads en POSIX (i): Llamadas básicas Llamada pthread_create(thread_id, attr, func, args) pthread_exit (status) Descripción Crea un nuevo hilo de ejecución. El hilo de ejecución empieza en func y se le pasan los parámetros args. El hilo que la invoca finaliza su ejecución. pthread_join (thread_id) Suspende la ejecución del hilo que invoca esta llamada, hasta que el thread_id acabe. pthread_t pthread_self() Devuelve el identificador del thread que la invoca.
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 thread1 pthread_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 thread2 pthread_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 Premisas: 1. En los sistemas de tiempo real no es suficiente que la lógica sea correcta 2. 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?. Constructora Integral de Colima
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 requerida sobre 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
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
Planificadores Cíclicos Ejemplo Control por computador de temperatura, nivel y ph de un depósito Actuador es Interfaz Sensore s
Planificadores Cíclicos Ejemplo Control por computador de temperatura, nivel y ph de un depósito Control_Temp Actuadores Control_Nivel I nterfaz Sensores Control_pH Visualizacion 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/S
Planificadores Cíclicos Ejemplo Control por computador de temperatura, nivel y ph de un depósito --Variables globales RegNivel, RegTemp, RegpH : Regulador; Nivel, Temp, ph : Float; Val_Salida, Val_Comp_Temp, Val_Comp_pH : Float; procedure Control_Nivel is begin Nivel := Leer_Sensor(Sensor); Calcular(Regniv, Nivel, Val_Salida); Enviar_Accion(Actuador, Val_Salida); end Control_Nivel; 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
Planificadores Cíclicos procedure Controlar is begin -- inicialización variables, reguladores, dispositivos T := clock; loop Control_Nivel; Control_Temp ; Control_pH; T:= T + Period ; t delay until T; end loop; 0 5 10 15 20 25 30 35 40 45 end Controlar; Temp_Control ph_control Level_Control
Planificadores Cíclicos Ciclo principal = 10 ms; secundario = 5 ms 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; 0 5 10 Temp_Control t 15 20 25 ph_control 30 35 40 Level_Control 45
Planificadores Cíclicos Caracterización Un actividad de tiempo real se caracteriza por una serie de parámetros temporales que determinan sus restricciones temporales de ejecución Pi = (Ci, Ti, Di, Ii) Ci Tarea i t Di Ii Ti
Planificadores Planificación de Sistemas de Tiempo Real 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.
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 TM TS TS TS t1 t2 0 10 20 30 40 50 60 70 80
Planificadores Cíclicos Diseño del plan cíclico 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
Planificadores Cíclicos 3.- Debe haber un TS completo entre el instante de activación y el plazo de cualquier tarea Ti Di = Ti Ts Ts Ts Ti 1 Ts Ts
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
Clasificación de Planificadores Sist. TR Cíclicos Cíclicos Prioridades Estáticas Rate Monotonic RM Deadline Monotonic DM Dinámicas Earliest Deadline First EDF Least Laxity First LLF
Planificadores Planificadores Estáticos 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 Planificadores Estáticos Preparado 1 2 3 4 Nuevo T1 Ejecución Terminado 5 Espera Di Ci T1 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 Planificadores Dinámicos 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 Planificadores Dinámicos Preparado Ejecución Nuevo T1 Terminado Espera Di Ci T1 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 Estátic a T1 Di Ci T1 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 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 Dinámic a T1 T2 T3 T4 1 2 3
Planificadores Análisis de Planificabilidad Lyu & Layland Pi = (Ci, Ti, Di, Ii) 0 1 2 3 4 5... K-1 K... 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 Ci Tarea i Di El peor caso se produce para t=0 con Ii=0. Se denomina Instante crítico. Ii Ti t
Planificadores Asignación de prioridades 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. 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) Ui i Factor de utilización de la CPU de una Tarea Ci Ti
Planificadores 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: 1 Para n tareas: Cn C1 C2 + +... + U ( n) = n (2 n 1) T1 T2 Tn Esta expresión establece un límite de utilización de la n CPU U(n) Es una condición suficiente pero no necesaria 1 1,00 2 0,82 1 0,9 0,8 3 0,77 0,7 0,6 4 0,75 0,5 0,4 5 0,74 0,3 0,2 0,1...... 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 0,69
Planificadores Análisis de planificabilidad: Test de factores de utilización Ejemplo 1 C1 = 2 C2 = 4 C3 =10 T1 = 10 U1 = 0.2 T2 = 15 U2 = 0.267 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.
Planificadores Análisis de planificabilidad: Test de factores de utilización Ejemplo 2 C1 C2 C3 C4 =2 =4 =5 =6 U1 + T1 = 10 U1 = 0.2 T2 = 15 U2 = 0.267 T3 = 25 U3 = 0.2 T4 = 35 U4 = 0.17 U2 + U3 + U4 = 0.837 Uso total 83,7 % > U(4) = 75.6 % No cumple Pero el sistema es planificable
Planificadores Análisis de planificabilidad: Test de factores de utilización 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
Planificadores Análisis de planificabilidad: Test de Tiempo de Finalización Teorema: Un conjunto de n tareas será planificable bajo cualquier asignación, si y sólo si: 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 Ci 2. Para cada tarea tj de mayor prioridad que la ti, la suma de todas las interferencias que se producen Función techo Wi I i = C j Tj 6 I 21 = 3 = 3 10 j T1 T2 6
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 Ci 2. Para cada tarea tj de mayor prioridad que la ti, la suma de todas las interferencias que se producen En 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: Wi Ii = C j j hp ( i ) T j
Planificadores Análisis de planificabilidad: Test de Tiempo de Finalización El tiempo de finalización de una tarea ti, será: Wi Wi = Ci + C j j hp ( i ) T j Esta ecuación se puede calcular de una forma iterativa. Wi 0 = Ci n W Wi n +1 = Ci + i C j j hp ( i ) T j Condición de terminación: Wi n +1 = Wi n n +1 Wi Condición de no cumplimiento: Ti
Planificadores Análisis de planificabilidad: Test de Tiempo de Finalización Un conjunto de n tareas será planificable si y sólo si: 1 i n, W =C W W = C + C T W W = C + C T 0 i 1 i 2 i W T i i 0 i i i j hp ( i ) j hp ( i ) j j 1 i j... k k +1 = Wi Wi Solución iterativa j i
Planificadores Wi Wi = Ci + C j j hp ( i ) T j Análisis de planificabilidad: Ci TestT1deDi Tiempo de 0 T1 10 10 3 = C1 = 3 W 1 Finalización T2 15 15 3 T3 18 18 2 T4 24 24 5 1 W = C + 0 = 3 T 1 1 1 = 10 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 Análisis de planificabilidad: TestT1deDi Tiempo de Ci T1 10 10 3 Finalización T2 15 15 3 T3 18 T4 18 24 2 24 5 Wi Wi = Ci + C j j hp ( i ) T j W 0 2 =C2 =3 0 3 W 2 = + = 3 + W 2 C 2 j {1} 10 3 = 6 T j 1 1 6 W 2 = + = 3 + 3 = 6 W 2 C 2 10 j {1} T j 2 W 1 2 2 =W 2 = 6 T 2 = 15 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 Análisis de planificabilidad: Ci TestT1deDi Tiempo de T1 10 10 3 Finalización T2 15 15 3 T3 18 18 2 T4 24 24 5 0 W =C 3 3 =2 Wi Wi = Ci + C j j hp ( i ) T j 0 2 2 W 3 = + = 2 + W 3 C 3 j 10 3 + 15 3 = 8 {1, 2} T j 1 1 8 8 W 3 = 2 + 3 + 3 = 8 W 3 = C 3 + j 10 15 {1, 2} T j 2 1 2 3 2 W =W = 8 T 3 = 18 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 Análisis de planificabilidad: Ci TestT1deDi Tiempo de W T1 10 10 3 Finalización T2 15 15 3 W T3 18 18 2 T4 24 24 5 T1 T2 T3 T4 1 2 3 4 5 6 7 8 9 10 11 12 13 Wi Wi = Ci + C j j hp ( i ) T j 0 4 =C 4 = 5 0 5 5 5 W 4 = + = 5 + 3 + 3 + 2 =13 C 4 j 4 10 15 18 {1, 2, 3} T j 1 2 13 13 13 W 4 = + = 5 + 3 + 3 + 2 =16 W 4 C 4 j 10 15 18 {1, 2, 3} T j 2 3 16 16 16 W 4 = + = 5 + 3 + 3 + 2 =19 W 4 C 4 j {1, 2,3} 10 15 18 T j 3 4 19 19 19 W 4 = 5 + 3 + 3 + 2 = 21 W 4 = C 4 + j 10 15 18 {1, 2, 3} T j 4 5 21 21 21 W 4 = + = 5 + 3 + 3 + 2 = 24 W 4 C 4 j 10 15 18 {1, 2, 3} T j 23 524 25 26 6 17 18 19 20 21 22W 14 15 16 2724 28 29 30 31 32 33 34 35 36 24 24 4 = 5 + 3 + 3 + 2 = 24 W 4 = C 4 + j 10 15 18 {1, 2, 3} T j W 1 6 4 5 =W 4 = 24 T 4 = 24
Planificadores Análisis de Planificabilidad Lyu & Layland Determinación off-line de si el sistema va a cumplir las restricciones temporales Supuestos iniciales 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).
Planificadores Asignación de prioridades Cuando se tienen plazos arbitrarios (Di <=Ti) hay una forma óptima asignar prioridades: Monotónico con el plazo. 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. Deadline Monotonic (DM) 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 Análisis de Planificación Cuando existen plazos menores que el periodo. Asignación de prioridades por orden creciente de plazo. Prioridad más alta al menor plazo. 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. Wi 0 = Ci n W Wi n +1 = Ci + i C j j hp ( i ) T j Condición de terminación: W n +1 = W n i i Condición de cumplimiento: Wi n +1 Di
Planificadores Resumen 1. 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ódicos 2. 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 sistema 1. Mediante el test de utilización (sólo en el caso de plazos = periodos y asignación monotónica) Si el2. sistema no es se puede incrementar los periodos y Mediante elplanificable test de finalización que el periodo de una tarea está dentro de un rango.
Planificadores Análisis de Planificabilidad Lyu & Layland Determinación off-line de si el sistema va a cumplir las restricciones temporales Supuestos iniciales 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).
Planificadores Análisis de Planificabilidad Lyu & Layland Determinación off-line de si el sistema va a cumplir las restricciones temporales Supuestos iniciales 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).
Modelo de Diseño Formal Requerimientos del Sistema Especificación Diseño Técnica global Implementación
Modelo de Diseño Formal Requisitos del Sistema Especificación global Especificación Implementación Basado en componentes
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 Componentes 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
Modelo de Diseño Formal Componentes 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 Descripción NOMBRE Servicios Ofrecidos Servicios Requeridos Configuración
Caracterización de Componentes Actividades Periódica Barrera Mecanismos de coordinación Sincronización Comunicación Entrada/Salida Específicos Código Genéricos Señal Periódica con plazo de Almacén entrega limitado Cerrojo Interrupción frecuencia fija Pizarra Periódica con Pasivo simple Pulso Interrupción intervalo computación opcionaltemporal Selección temporizada Buzón Lector/Escritor Evento Convertidor muestreo Periódica con cambio de Selección múltiple Multiemisión Protegido genérico modo Cita Convertidor interrupción Secuencia Dato compartido Aperiódica Transportador Servidora
Modelo de Diseño Formal
HLTPN Definición: HLTPN es una tupla (P,T,pre, post), donde: P: Lugares T: Transiciones pre P T post T P Características:
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
Análisis y Verificación Formal T 1_1 tr1 _ 1 T 1_2 T 1_4 T 11 tr1 _ 2 tr1 _ 3 T 1 _ 3 tr1 _ 4 T 1_5 e rw C 1 tr1 _ 5 T 1_6 R W C 1 tr1 _ 6 T 1_7 E x itr W C 1 T 1_8 e v a l1 _ T 1 tr1 _ 8 e v a l2 _ T 1 st1 _ 3 T I1 tr1 _ 9 T 1_10 S e n te n c e s1 tr1 _ 1 0 T 1_11 E x its e n t1 T F1 st1 _ 2 T A 1 rc 1 C R W 1 E xc 1 lc 1 T 1_9 st1 _ 1 SC 1 w C 1 tr1 _ 7 S_T 1 se n t1 tr1 _ 1 1 T 1_12 T 1_13 tr1 _ 1 2 T 12 T 2_1 tr2 _ 1 T 2_2 T 2 _ 4 tr2 _ 3 T 2 _ 3 T 21 tr2 _ 4 c a llf1 O P R W 1 E m p ty O PR W 1 FO PR W 1 2 tr2 _ 2 T 2_5 tr2 _ 5 SC H C sc h 1 nf O PR W 1 C tfo PR W 1 T 2_6 SC H A sc h 3 SC H O R D sc h 2 sc h 4 e v a l2 _ T 2 st2 _ 1 sc h 7 E P O P R W 1e _ P O P R W 1 T F2 st2 _ 2 n o n _ a ssig n tr2 _ 9 S e n te n c e s2 T 2_10 se n t2 tr2 _ 1 0 E x its e n t2 T 2_11 st2 _ 3 T I2 SC H B tr2 _ 1 1 T 2_12 T A 2 T 2_13 PR O C E x itpo PR W 1 e B 1 C te rb 1 W B 1 tr2 _ 1 2 fu llb 1 T 22 =0B 1 PA B 1 E x itb 1 C tb 1 e v a l1 _ T 3 lb 1 T 3_1 e v a l2 _ T 3 tr3 _ 1 T 3_2 T 3 _ 4 tr3 _ 3 T 31 tr3 _ 4 tr3 _ 2 T 3_3 T 3_5 tr3 _ 5 T 3_6 S_T 3 tr3 _ 6 T 3_7 tr3 _ 7 T 3_8 st3 _ 1 st3 _ 3 T I3 tr3 _ 8 T F3 st3 _ 2 T 3_9 tr3 _ 9 T 3_10 T A 3 tr3 _ 1 0 T 3_11 tr3 _ 1 1 T 3_12 T 3_13 T 32 tr3 _ 1 2 R eco PR W 1 W a ito PR W 1 tr2 _ 8 T 2_9 sc h 5 P80 B u f O P R W s1e l O P R W 1 T 2_8 S_T 2 sc h 6 SC H F E ndfo P1 E xecfo PR W 1 R eqo PR W 1 tr2 _ 7 SC H D SC H E E x itfo PR W 1 T 2_7 e v a l1_ T 2 c a llf 2 O PR W 1 E F O P R W 1e _ F O P R W 1 tr2 _ 6 S e n te n c e s3 T L 1 e L 1 T W L 1 E x itl 1 e v a ll 1 Sta te L 1 L L 1 a rriv a ll 1 Se n t3 E x itse n t3 C a llpo PR W 1 3 PO PR W 1 E xecpo PR W 1 endpo PR W 1
Análisis y Verificación Formal
Análisis y Verificación Formal
www.themegallery.com