Planificación Cíclica

Slides:



Advertisements
Presentaciones similares
Diseño y análisis de algoritmos
Advertisements

CICLO DE VIDA DEL DESARROLLO DE SOFTWARE
Planificación de Monoprocesadores
Gestión de Recursos Informáticos Unidad Nº 4: Proyectos Informáticos
Sistema operativo Componentes de un sistema operativo
PLANEACION DE PROYECTOS
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Planificación con Prioridades Fijas
ADA: lenguaje de programación concurrente
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Programación Estructurada
Introducción al tiempo real en sistemas empotrados
Diseño y análisis de algoritmos
Metodología de la Programación
1.5 Algoritmos, Pseudocódigo y Diagramas de Flujo
Conceptos en Sistemas de Tiempo Real (Real Time Systems)
Curso de Programación 1 Plan 97
ANALISIS SINTACTICO DESCENDENTE
Aplicaciones de Sistemas de Tiempo Real
CONCURRENCIA. PLANIFICACIÓN DE PROCESOS EN SISTEMAS EN TIEMPO REAL Juan Antonio Fernández Madrigal, 2004 Departamento de Ingeniería de Sistemas y Automática.
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Analisis de Planificación
Tema 10: Gestión de Memoria
Deadlocks Abrazo Mortal Bloqueos mutuos
Planificación de Tareas Aperiodicas
1 Concurrencia Procesos y Programas. 2 Establecer Comunicación entre procesos (memoria común)
Programación en Matlab
2. ASYNCRONOUS TRANSFER MODE 2.1Características generales 2.2 Modelo de referencia del protocolo 2.3 Categorías de servicio ATM.
Ordenamiento, Heapsort y Colas de prioridad
Análisis y Diseño de Algoritmos. Propiedades : f ( n )  O ( f ( n ) ) a ) O ( f ( n ) )  O ( g ( n ) )  f ( n )  g ( n )
Profesor: Rodrigo Sanhueza Figueroa
Secuencia y duración De actividades.
Capítulo 6: Planificación del CPU – Parte a
Diseño y análisis de algoritmos
(Organización y Manejo de Archivos)
Modelo del Sistema Dr. Pedro Mejía Alvarez
Planificación Dinámica de Tareas
Planificación de Procesos
Planificación y Gestión de procesos
Planificación Temporal de Proyectos Informáticos
Capítulo 7 Gestión de memoria.
El PERT ( Program Evaluation and Review Technique )
Planificación de Tareas Aperiodicas
APLICACIONES.
Sincronización de Procesos
Informática III Arquitectura de Software para aplicaciones de tiempo real estricto Ejecutivos cíclicos VS. Ejecutivos de prioridad fija Integrantes: Anibal.
Ingeniería en Sistemas de Información
Dr. Pedro Mejía Alvarez Sistemas de Tiempo Real Transparencia 1 Planificación Cíclica Dr. Pedro Mejía Alvarez CINVESTAV-IPN, Departamento de Computación.
INGENIERÍA DE SOFTWARE
Análisis de Algoritmos
Tema 10: Algoritmos voraces
Métodos de Planificación
DIAGRAMA DE FLECHAS O RUTA CRITICA
COMPLETA LOS ESPACIOS CON LA PALABRA ADECUADA 1.LOS _______________________ SE DEFINEN COMO LA _________________LÓGICA DE _________PARA SOLUCIONAR UN.
Introducción al análisis de sistemas
LSI. Freddy Veloz Sistemas Operativos
INTERRUPCIONES – ABRAZO MORTAL
ROUND ROBIN.
Operations Management
Estructuras de Control
Introduccion a los Sistemas en Tiempo Real
Sesión 8 Procesos.
Fundamentos de Computación
Planificación de uso del procesador Rina Arauz. Planificación de CPU 2 UNAN-Leon La ejecución de un trabajo se compone de secuencias de procesador y de.
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
4. Definición del proyecto. Qué tan difícil es manejar un proyecto? ◦Dependerá del tamaño del mismo ◦De los costos ◦De los plazos ◦Del nivel de dificultad.
L.I. Gerardo Ortiz Rivera
L.I. Gerardo Ortiz Rivera
L.I. Gerardo Ortiz Rivera
Transcripción de la presentación:

Planificación Cíclica Dr. Pedro Mejía Alvarez CINVESTAV-IPN, Sección de Computación

Indice Planificación Cícilica Estructura del ciclo principal y secundario Método para construir el plan cíclico Cambios de Modo Tareas Aperiodicas y Esporadicas Grafica de flujo de red Ventajas y Desventajas

Planificación Cíclica Si todas las tareas son periódicas, se puede confeccionar un plan de ejecución fijo Se trata de un esquema que se repite cada ( ciclo principal ) El ciclo principal se divide en ciclos secundarios, con período En cada ciclo secundario se ejecutan las actividades correspondientes a determinadas tareas El sistema debe ser determinista,todos los parametros temporales deben ser conocidos a priori. T = m c m ( Tj ) M T ( T = k T ) S M S

Ejemplo El ciclo principal dura 100 ms Se compone de 4 ciclos secundarios de 25 ms cada uno T = 100ms M T = 25ms S A B C A B D E A B C A B D 0 25 50 75 100

Programación del Ejecutivo cíclico procedure Cyclic_Executive is type Cycle is mod 4; Frame ; Cycle : = 0; begin loop Wait_for_Interrupt; case Frame is when 0 => A; B; C; when 1 => A; B; D; E; when 2 => A; B; C; when 3 => A; B; D; end case; Frame : = Frame + 1; end loop; end Cyclic_Executive;

Programación del Ejecutivo cíclico Plan ciclico: (tk, (tk)), al instante tk, ejecuta la tarea (tk) o tiempo ocioso Planificador: proximo punto de desicion i y entrada k de la tabla = 0 timer = tk do forever acepta interrupcion del timer timer =  i/N  + tk Ejecuta la tarea  sleep Se asume que solo hay una tarea por frame

Estructura del ciclo principal idle frame overrun 1 2 3 4 ... frames (ciclos secundarios) » t t + m t + 2m t + 3m t + 4m t + M El cumplimiento de tiempos debe verificarse al final de cada frame Las reglas para seleccionar el valor de m para una tarea con parametros {(Ti,Ci , Di )} para n tareas es: m  di , y m  Ci ; i = 1, 2, … , n M / n = entero (m divide a Ti en al menos una tarea) debe haber al menos un frame en el intervalo entre el tiempo de inicio y el plazo de cada Job. 2m - gcd (m, Ti)  Di , for i = 1, 2, … , n

Ejemplo: selección del valor de m Tareas = {(T,C,D)} = {(15, 1, 14), (20, 2, 26), (22, 3,22)} Hiperperiodo = 660 Valores posibles de m - m  min{Di} = 14  m = 1, 2, 3, 4, … , 14 - m  max{Ci} = 3  m = 3, 4, 5, … , 14 - m divide a Ti  m = 3, 4, 5, 10, 11 - 2m - gcd(m,Ti)  Di  m = 3, 4, 5

Ejemplo: selección del valor de m (15, 1, 14) (20, 2, 26) (22, 3) m = 4 20 24 24 40 48 72 96 …. » 660

Ejemplo: selección del valor de m Suponga que T = {(5, 1, 4), (20, 7, 26), (22, 5)} Reglas: 1 m  min{Di} = 4 2 m  max{Ci} = 7 no pueden satisfacerse simultáneamente Podemos descomponer tareas grandes en tareas pequeñas T’ = {(5, 1, 4), (20, 3, 26), (20, 4, 26), (22, 2), (22, 3)} para planificarlas en un procesador La programación del planificador del ejecutivo cíclico cambia cuando las tareas se descomponen.

Cambios de modo Los cambios de modo son dificiles de realizar. Cambios de Modo: Eliminación o creación de tareas, o cambios en los parámetros de las tareas. Cuando realizar el cambio de modo ?. Ventajas y desventajas de realizarlo (a) al fin del frame en ejecución, (b) durante el ciclo principal actual, (c) durante la ejecución de la tarea actual, (d) cuando arriva la interupción.

Tareas Aperiodicas y Esporadicas Tareas aperiodicas: atendidas en Background: cuando ninguna tarea se esta ejecutando. Slack Stealing: cuanto puede retrasarse una tarea periódica. Manejo de tareas aperiódicas: convertir cada tarea esporádica en una periódica: servidor periódico (T,C,D). Uso del servidor aperiódico de la menor prioridad. Tareas esporádicas: Uso de test de aceptación. deadline C tm d tiempo minimo entre arrivos muy pesimista- garantiza el peor caso. p = min (tm, d - t +1) -

Tareas Aperiodicas Tipicamente: la ejecución en background: cuando ninguna tarea se ejecuta su ejecución puede retrasarse Los Jobs aperiódicos provienen de eventos externos. Por lo tanto: Entre más pronto terminen mejor, lo cual hace al sistema más responsivo Minimizar el tiempo de respuesta de los Jobs aperiodicos es un objetivo de diseño. El enfoque es: ejecutar los Jobs aperiódicos antes que los periódicos cuando esto sea posible: cuando no se pierden los plazos de ls jobs periódicos. esto se conoce como slack stealing.

Tareas Aperiodicas Un servidor periodico sigue al plan ciclico Un servidor aperiodico verfica la cola de tareas aperiodicas la ejecucion en background: cuando ninguna tarea se ejecuta la ejecucion en tiempo ocioso (slack stealing): las tareas periodicas se retrasan de forma queno pierdan sus plazos. Todas las tareas terminan antes del fin de sus frames y las tareas aperiodicas no son expulsables. al frame k, ek se reserva para tareas periodicas slack time = s = f - ek al comienzo de cada frame, encuentra una tarea aperiodica j con tiempo de ejecucion ek que sea menor a s, si s >= ej la tarea podra ejecutarse, en caso contrario buscar en el siguiente frame ejecuta otra tarea aperiodica en el slack que resta: s = s - ej al frame k Haz slack stealing en los siguientes frames.

Tareas Esporadicas Test de Aceptacion: IF S(s,l) < e THEN reject job ELSE accept job schedule execution END

Ejemplo de Tareas Aperiódicas Tamaño del frame: 4 S1(1.5) arriva al tiempo 4 S2(0.5) arriva al tiempo 9.5 S3(2.0) arriva al tiempo 10.5 3.5 3 2 3 3 4 8 12 16 20 3.5 3 S1 2 S1 S3 3 S3 3 Background Slack stealing 4 8 S2 12 16 20 3.5 S1 3 S1 S2 S3 S3 4 8 12 16 20

Ejemplo de Tareas Esporadicas 3.5 3 2 3 3 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 Tamaño del frame: 4 S1(17,4.5) arriva al tiempo 3 S2(29,4) arriva al tiempo 5 S3(22,1.5) arriva al tiempo 11 S4(44,5.0) arriva al tiempo 14

Ejemplo de Tareas Esporadicas 3.5 3 2 3 3 4 8 S2 12 S3 16 S3S2 S2 24 S2 28 32 36 40 44 48 52 56 60 Verificar si existe slack, como se hace con las tareas aperiodicas. Si no existe suficiente slack rechasa a la nueva tarea.

Construcción del Plan Cíclico Aplicar las reglas para seleccionar el valor del frame. Si no existe un plan de ejecución factible (no existe un valor factible del frame), partir los jobs en partes menores y seleccionar de nuevo el valor del frame. Asignar las partes en los frames. Algoritmo flujo de red iterativo: Permite encontrar un plan de ejecución, si este existe. Encuentra los planes factibles para cada tamaño de frame, desde el frame mas grande al mas pequeño. Si se encuentra un plan factible, este nos dirá si es necesario descomponer las tareas en partes. Si el algoritmo no encuentra un plan factible para todos los tamaños de frames, no existe un plan factible.

Algoritmo para la construccion del plan cícilico. Asuma que cada tarea se puede dividir (es expulsable) eligir f que divida a H y a 2f - gcd ( f, pi )  Di Para cada f, construya un diagrama de flujo de red. una fuente y un destino un vértice (vertex) para cada job Ji,k (instancia de la tarea) y una flecha (edge) desde el destino con capacidad Ci un vértice para cada frame fk y una flecha(edge) desde cada frame hacia el destino (sink) con capacidad f Si Ji,j puede planificarse en el frame fk, añade una flecha (edge) entre los vértices con capacidadad f Encuentre el máximo flujo entre el destino (source) y la fuente(sink). la planificación es factible si el flujo máximo es igual a el tiempo de ejecución total.

Plan de Ejecución Cíclico (ejemplos) Tres tareas (15, 1, 14) (20, 2, 26) and (22,3) H = 330 , f  3, y f = 3, 4, 5, 10, o 11 f no pueder ser muy grande dado que 2f - gcd(….)  14 f puede tener valores 3, 4, y 5 Tres tareas (4, 1) (5, 2, 7) and (20, 5) H=20, f  5, pero f  4 job slices: divide la 3ra. tarea en (20, 1) (20, 3) y (20, 3) f puede tener valor de 4 T1 T2 T3,,1 T1 T3,2 T1 T2 T3,3 T1 T2 T1 T2 0 2 4 6 8 10 12 14 16 18 20

Grafica de flujo de red H=20, f = 2 o 4 Tres tareas (4, 1) (5, 2, 7) y (20, 5) H=20, f = 2 o 4 source sink Ji,k f1

Propiedades No hay concurrencia en la ejecución Cada ciclo secundario es una secuencia de invocaciones de procedimientos Los procedimientos pueden compartir datos No hace falta usar mecanismos de exclusión mutua Los períodos deben ser armónicos Puede ser necesario utilizar períodos más cortos de lo necesario No hace falta analizar el comportamiento temporal El sistema es correcto por construcción

Ventajas del ejecutivo cíclico Simplicidad y Predecibilidad: Las restricciones temporales pueden checarse facilmente. El plan de ejecución cíclico puede representarse en una tabla para usarse por el kernel Cambio de contexto muy pequeño, poco overhead de planificación Facil para representar restricciones de precedencia 13

Desventajas del ejecutivo cíclico Las tareas esporádicas son difíciles de tratar Se puede utilizar un servidor de consulta El plan cíclico es difícil de construir 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 NP-duro Es poco flexible y difícil de mantener Cada vez que se cambia una tarea hay que rehacer toda la planificación No permite integrar tareas con plazos criticos y acriticos. 13