La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Planificación Cíclica

Presentaciones similares


Presentación del tema: "Planificación Cíclica"— Transcripción de la presentación:

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

2 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

3 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

4 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

5 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;

6 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

7 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

8 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} =  m = 1, 2, 3, 4, … , 14 - m  max{Ci} =  m = 3, 4, 5, … , 14 - m divide a Ti  m = 3, 4, 5, 10, 11 - 2m - gcd(m,Ti)  Di  m = 3, 4, 5

9 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

10 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.

11 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.

12 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) -

13 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.

14 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.

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

16 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 S S1 S S Background Slack stealing S 3.5 S S S S3 S3

17 Ejemplo de Tareas Esporadicas
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

18 Ejemplo de Tareas Esporadicas
S S S3S2 S S Verificar si existe slack, como se hace con las tareas aperiodicas. Si no existe suficiente slack rechasa a la nueva tarea.

19 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.

20 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.

21 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 T T3,,1 T T3, T1 T T3,3 T T T T2

22 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

23 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

24 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

25 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


Descargar ppt "Planificación Cíclica"

Presentaciones similares


Anuncios Google