Análisis y Verificación Formal de Planificadores para Sistemas Operativos de Tiempo Real. Dr. Apolinar González Potes

Documentos relacionados
T5-multithreading. Indice

Tiempo real. Juan Antonio de la Puente DIT/UPM. Tiempo real. Comprender el papel del tiempo en el diseño y realización de sistemas de tiempo real

UPM Gestión del tiempo real

Sistemas Operativos Práctica 3

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Concurrencia. CURSO ACADÉMICO - SEMESTRE Segundo semestre

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

2.2 Nombres, Ligado y Ámbito

Sistemas Operativos I. Tema 3. Procesos. Equipo de Sistemas Operativos DISCA / DSIC UPV

Programación concurrente

Procesos e Hilos en C

M. C. Felipe Santiago Espinosa

RELOJES DE TIEMPO REAL ÍNDICE

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Tema 5: Introducción a los Sistemas en Tiempo Real

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Tema 4 El paradigma cliente-servidor

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Sistemas Distribuidos. Soporte de Sistemas Operativos

Herramientas Informáticas I Software: Sistemas Operativos

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

Breve introducción a la Investigación de Operaciones

Fundamentos de programación

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Introducción a los Sistemas Operativos

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

SISTEMAS OPERATIVOS Arquitectura de computadores

Ingeniería de Software II. SETEPROS Plan de pruebas. Versión 1.0

Seminario de Programación en Ada

1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? El sistema operativo como máquina extendida El sistema operativo como gestor de

Cristian Blanco

PR1: Programación I 6 Fb Sistemas Lógicos 6 Obligatoria IC: Introducción a los computadores 6 Fb Administración de

Análisis y Diseño de Sistemas en Tiempo Real

Parte I: Elementos del lenguaje Ada

JAVA 7 Los fundamentos del lenguaje Java

Proceso Unificado (Iterativo e incremental)

Introducción al Lenguaje de Programación C

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

Threads, SMP y Microkernels. Proceso

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Principios de Computadoras II

PROGRAMACION CONCURRENTE Y DISTRIBUIDA

TIPOS DE DATOS BASICOS EN LENGUAJE C

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

Introducción al lenguaje C

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

SO2 - Sistemas Operativos II

Maestría en Ingeniería Énfasis en Sistemas y Computación

Estimación para Proyectos Software

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

Operadores de comparación

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

La eficiencia de los programas

SOLUCIONES. SISTEMAS OPERATIVOS Examen de la convocatoria extraordinaria de diciembre 2 de diciembre de 2010

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática.

DISEÑO CURRICULAR ELECTRÓNICA DIGITAL

Diseño arquitectónico 1ª edición (2002)

Apuntadores (Punteros)

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño

Elementos de un programa en C

Guía rápida para gestionar el puerto paralelo del PC

Usando el Sistema Operativo

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Guía práctica de estudio 05: Diagramas de flujo

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

OPERADORES Y EXPRESIONES

Tema 2. El lenguaje JAVA

AUTOMATIZACIÓN INDUSTRIAL

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

El Proceso. Capítulo 2 Roger Pressman, 5 a Edición. El Proceso de Desarrollo de Software

Examen escrito de Programación 1. Jueves 5 de febrero de Problema 1 o (3.5 puntos)

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN

1. Computadores y programación

GRADO EN INGENIERÍA INFORMÁTICA

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

PROGRAMA DE ESTUDIOS SIMULTÁNEOS DE GRADO EN MATEMÁTICAS Y GRADO EN INGENIERÍA INFORMÁTICA

Complejidad de los Algoritmos

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

Ingeniería del Software Ingeniería del Software de Gestión. Tema 3 Metodologías de Desarrollo de Software

Notas técnicas de JAVA Nro. 5 Tip en detalle

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS.

Aprendizaje Automatizado

Interfaces. Carrera: SCF Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Requerimientos de Software

1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque:

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

SILABO DE SISTEMAS OPERATIVOS

Programación estructurada (Introducción a lenguaje C)

Inteligencia en Redes de Comunicaciones - 08 Agentes

Tema 2 Introducción a la Programación en C.

ORGANISMO COORDINADOR DEL SISTEMA ELÉCTRICO NACIONAL INTERCONECTADO DE LA REPÚBLICA DOMINICANA

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

Pontificia Universidad Católica del Ecuador

Transcripción:

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, &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 thread2 pthread_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 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