Planificacin Nora Blet Informtica III Concurrencia n n
Planificación Nora Blet Informática III
Concurrencia n n n Los sistemas de tiempo real controlan actividades del mundo exterior que son concurrentes Para ello deben ejecutar varias actividades o tareas en paralelo (concurrentemente) La ejecución de las tareas se multiplexa en el tiempo en uno o varios procesadores
Núcleo de ejecución (RTSS) n n Los procesos concurrentes se ejecutan con la ayuda de un núcleo de ejecución (RTSS, Run-time support system) que tiene muchas de las propiedades de los planificadores en un sistema operativo y, se situa lógicamente entre el hardware y el software de la aplicación Se encarga de la creación, terminación y multiplexado de los procesos
Núcleo de ejecución (RTSS) Opción 1 n Desarrollado como parte de la aplicación
Núcleo de ejecución (RTSS) Opción 2 n Sistemas operativos de tiempo real específicos (Lynx. OS, QNX, Vx. Works, estándar POSX)
Núcleo de ejecución (RTSS) Opción 3 n Sobre la un núcleo máquina desnuda: fabricar un núcleo básico ad-hoc con un planificador de tareas de tiempo real
Núcleo de ejecución (RTSS) Opción 4 n Arquitectura con máquina virtual (RTLinux)
Objetivos n n ¿Cómo planificar el uso de los recursos de forma tal de garantizar los requisitos temporales? En general un esquema de planificación proporciona dos elementos: q Un algoritmo de planificación que determina el orden de acceso de las tareas a los recursos del sistema (en particular, el procesador) q Un método de análisis que permite predecir el comportamiento temporal del sistema n n Las predicciones son útiles para confirmar que pueden garantizarse los requisitos temporales del sistema En general, se estudia el peor comportamiento posible
Introducción n Un esquema de planificación puede ser q q n Estático: el análisis se realiza antes de la ejecución Dinámico: se toman decisiones en tiempo de ejecución Un método estático muy usado es el de planificación con prioridades fijas y desalojo q q La prioridad es un parámetro relacionado con la urgencia o importancia de la tarea En todo momento se ejecuta la tarea con mayor prioridad de todas las ejecutables (es decir, no esté retrasado o suspendido)
Arquitecturas de software n n Definen la estructura general de una clase de sistemas de tiempo real Hay dos tipos principales de arquitecturas q Arquitectura síncrona q q q Las tareas se ejecutan según un plan de ejecución fijo (realizado por el diseñador) El sistema operativo se reemplaza por un ejecutivo cíclico Arquitectura asíncrona q q q Las tareas se reparten el procesador de forma dinámica (invisible para el diseñador) Cada tarea tiene una prioridad En cada momento se ejecuta la tarea activa de mayor prioridad
Arquitectura síncrona
Arquitectura asíncrona
Esquemas de planificación
Modelo de tareas simple n n n Se supone que la aplicación está compuesta por un conjunto fijo de tareas y se conoce en tiempo de ejecución (estático) Todas las tareas son periódicas, con periodos conocidos Las tareas son completamente independientes unas de otras Los plazos de respuesta de todas las tareas son iguales a sus periodos (o sea, cada tarea debe acabar antes de ser ejecutada nuevamente) El tiempo de ejecución máximo de cada tarea es conocido y fijo Todas las sobrecargas del sistema son ignoradas
Parámetros de planificación N Número de tareas en el sistema T Período de activación de una tarea C Tiempo de ejecución máximo de una tarea D Plazo de respuesta de una tarea R Tiempo de respuesta máximo de una tarea P Prioridad En el modelo de tareas simple, para cada tarea i: Se trata de asegurar
Modelo de tareas en tiempo real dk rk Dk Ck Rk
Hiperperíodo n En el modelo de tarea simple se denomina hiperperíodo del sistema a n El comportamiento temporal se repite cada hiperperíodo
Planificación con ejecutivos cíclicos Si todas las tareas son n n periódicas, puede confeccionarse un plan de ejecución fijo Se trata de un esquema que se repite cada ciclo principal Cada ciclo principal se divide en ciclos secundarios, con periodos En cada ciclo secundario se ejecutan las actividades correspondientes a determinadas tareas
Ejemplo
Ejemplo
Propiedades n n No hay concurrencia en la ejecución q Cada ciclo secundario es una secuencia de llamadas a procedimientos Los procedimientos comparten un espacio de direcciones, por lo que pueden pasar datos entre ellos q No hace falta usar mecanismos de exclusión mutua porque es imposible el acceso concurrente Todos los periodos de las tareas deben ser múltiplos del periodo de los ciclos secundarios q Puede ser necesario usar períodos mas cortos de lo necesario No hace falta analizar el comportamiento temporal q El sistema es correcto por construcción
Problemas n Dificultad para incorporar tareas esporádicas q q n Dificultad en la construcción del plan cíclico Si los períodos son de diferentes órdenes de magnitud el número de ciclos secundarios se hace muy grande Puede ser necesario partir una tarea en varios procedimientos En el caso más general, es un problema NP duro Poco flexible y difícil de mantener q Cada vez que se cambia una tarea hay que rehacer toda la planificación
Programación basada en tareas n n Las tareas se realizan como procesos concurrentes Una tarea puede estar en varios estados (suponiendo que no exista comunicación entre procesos)
Programación basada en procesos n Las tareas ejecutables se despachan para su ejecución de acuerdo con un esquema de planificación q q q Prioridades fijas (FPS, por Fixed-Priority Scheduling) Primero el más urgente (EDS, por Earliest Deadline First) Primero el más valioso (VBS, por Value-Based Scheduling)
Planificación con prioridades fijas n n Es el método más corriente en los sistemas operativos de tiempo real Cada tarea tiene un prioridad fija, estática, que se calcula antes de su ejecución Las tareas ejecutables se despachan para su ejecución en orden de prioridad El despacho puede hacerse q q q n Con desalojo Sin desalojo Con desalojo limitado En general, se supondrá prioridad fija con desalojo q Se mejora la reacción de los procesos de alta prioridad
Primero el más urgente n n n Las tareas ejecutables se despachan por orden de los respectivos tiempos límites (absolutos) La primer tarea que se ejecuta es la más urgente (aquélla cuyo plazo vence antes) Los tiempos límites absolutos se calculan en tiempo de ejecución (esquema dinámico)
Primero el más valioso n Si el sistema puede sobrecargarse no será suficiente el simple uso de los métodos anteriores q n Se precisa un esquema más adaptable Se asigna un valor a cada tarea, y se emplea un algoritmo de planificación en línea basado en ellos para decidir cuál es la siguiente tarea a ejecutar
Prioridades de tasa monotónica n Se asigna menor prioridad a las tareas de menor período (rate monotonic scheduling), es óptima para el modelo de tareas simple: q Si pueden garantizarse los plazos de un conjunto de tareas con otra asignación de prioridades, podrán garantizarse con el esquema de asignación de prioridades con tasa monotónica
Factor de utilización n Es una medida de la carga del procesador para un conjunto de tareas En un sistema con un único procesador Liu y Layland (1973) demostraron que usando este factor puede obtenerse un test de planificabilidad para RM
Análisis basado en la utilización n n Para el modelo simple, con D=T, con prioridades de tasa monotónica, los plazos están garantizados si: N 1 2 3 4 5 10 Utilización mínima garantizada U 0(N) 100. 0% 82. 8% 78. 0% 75. 7% 74. 3% 71. 8%
Ejemplo 1 n La utilización combinada es del 0. 82 (>0. 78) por tanto este conjunto de tareas no pasa el test de utilización. En el instante t=50 la tarea a incumple su primer límite temporal Tarea a b c T 50 40 30 C P U 12 10 10 1 2 3 0. 24 0. 25 0. 33
Ejemplo 1
Ejemplo 1 – Diagrama de Gantt c 0 b 10 a 20 Tiempo c 30 b 40 50
Ejemplo 2 n Este sistema está garantizado (U<0. 78) Tarea T C P U a b c 80 40 16 32 5 4 1 2 3 0. 400 0. 125 0. 250
Instante crítico n n n Las líneas temporales pueden utilizarse para probar la planificabilidad Para conjunto de tareas que comparten un tiempo de activación común (instante crítico) es suficiente dibujar una línea temporal igual al tamaño del periodo más largo (Liu y Layland, 1973) Si todos las tareas cumplen su primer límite temporal, entonces cumplirán todos sus límites futuros
Ejemplo 3 n Este sistema no pasa la prueba de utilización (U=1>0. 78) pero, se cumplen los plazos Tarea T C P U a b c 80 40 20 40 10 5 1 2 3 0. 50 0. 25
Ejemplo 3 Tarea a Desalojado b En ejecución c 0 10 20 Tiempo 30 40 50 60 70 80
Utilización mínima garantizada n n Es una condición suficiente pero no necesaria En muchos casos se pueden garantizar los plazos con factores de utilización mayores a U 0(N) Sólo puede utilizarse para conjunto de tareas con plazos igual al periodo No se puede aplicar a modelos de tareas más complejos
Factor de utilización con EDF n n Los plazos están garantizados si y sólo si Permite una mayor utilización del procesador. FPS tiene algunas ventajas sobre EDF: q q FPS es más sencillo de implementar EDF requiere un sistema de tiempo de ejecución más complejo Durante las situaciones de sobrecarga el comportamiento de FPS es mas predecible EDF requiere que todas las tareas tengan un plazo asignado
Análisis del tiempo de respuesta para FPS n Las pruebas basadas en la utilización para FPS tienen 2 inconvenientes: q q n No son exactas y, No son realmente aplicables a un modelo de tareas más general Se verá una forma diferente basada en el cálculo del tiempo de respuesta en el peor caso de cada tarea, Ri y una simple comprobación: R D i i
Análisis del tiempo de respuesta para FPS n n El tiempo de respuesta en el peor caso de cada tarea es igual a la suma del tiempo de ejecución en el peor caso para la misma más la interferencia que sufre por la ejecución de tareas con mayor prioridad La interferencia es máxima cuando todas las tareas se activan a la vez (instante crítico)
Instante crítico n La interferencia es máxima cuando todos las tareas se activan a la vez q El instante inicial se denomina instante crítico
Cálculo de la interferencia n El número de veces La función techo obtiene el menor entero mayor que el fraccionario sobre que una tarea de el que actúa. El techo de 1/3 es 1, el de 6/5 es 2, y el de 6/3 es 2. prioridad superior, j, se ejecuta durantetotal el es: La interferencia intervalo [0, Ri) es:
Cálculo del tiempo de respuesta donde hp(i) es el conjunto de tareas de prioridad mayor que i. La ecuación no es continua ni lineal y no puede resolverse analíticamente (Joseph y Pandya, 1986)
Cálculo del tiempo de respuesta n Se puede resolver mediante la relación de recurrencia (Audsley et al. , 1993): q q El conjunto de valores es monótono no decreciente Un valor aceptable de puede ser Ci (o 0)
Cálculo del tiempo de respuesta
Ejemplo 4 Tarea a b T 7 12 C 3 3 P 3 2 c 20 5 1
Ejemplo 4 Tarea T C P a 7 3 3 b 12 3 2 c 20 5 1
Ejemplo 3 - revisión n El cálculo de los tiempos de respuesta indica que todas las tareas tienen garantizados sus plazos Tarea T C P R a b c 80 40 20 40 10 5 1 2 3 80 15 5
Propiedades del análisis del tiempo de respuesta n Proporciona una condición necesaria y suficiente para la garantía de los plazos R i D i n Proporciona un análisis del comportamiento temporal del sistema más exacto quel método basado en la utilización El elemento crítico es el tiempo de cómputo de cada tarea n q q Optimista: Los plazos pueden fallar aunque el análisis sea positivo Pesimista: El análisis puede ser negativo y en la realidad no fallen los plazos
Tiempo de ejecución en el peor caso (WCET) n n Interesa el tiempo de ejecución en el peor caso (WCET, worst case execution time) Hay dos formas de obtener el WCET de una tarea: q Medida del tiempo de ejecución q q No es fácil saber cuándo se ejecuta el peor caso posible Análisis del código ejecutable q Puede ser muy pesimista q q Hace falta tener un modelo adecuado del procesador Es difícil tener en cuenta los efectos de los dispositivos de hardware (cachés, pipelines, estados de espera de la memoria, etc. )
Generalización del modelo de tareas n El análisis del tiempo de respuesta visto para el modelo de tareas básico puede extenderse con q q q q Tareas esporádicas y aperiódicas Plazos menores o mayores que los períodos Interacción mediante secciones críticas Planificación cooperativa Fluctuaciones (jitter) en la activación Tolerancia a fallos Desfases (offsets)
Referencias n n n Burns, A. Wellings, A. "Sistemas de Tiempo Real y Lenguajes de Programación", Addison -Wesley (2003) Capítulo 6 Transparencias de Juan Antonio de la Puente http: //polaris. dit. upm. es/~jpuente/ Transparencias de Javier Macías Guarasa http: //wwwlsi. die. upm. es/~carreras/ISSE/sistemas_con_ restricciones_1. x 2. pdf
- Slides: 53