TEMA 6
Transcripción
TEMA 6
TEMA 6 Planificación dinámica de tareas 1 Introducción. Asignación dinámica de prioridades. Planificación EDF Planificación LSF Sobrecargas. Estabilidad. 2 Introducción 3 Introducción En algunos sistemas de tiempo real la carga de trabajo no es fija: El entorno es cambiante. Las tareas se crean/destruyen dinámicamente. Las tareas pueden aparecer en ráfagas. Una parte del sistema falla. La planificación de recursos se debe realizar en tiempo de ejecución. La planificación se basa en los atributos de las tareas. No se conoce a priori las necesidades de tareas futuras. 4 Modelo de Sistema El sistema: compuesto por transacciones y recursos. Recursos del sistema: procesadores, memoria, etc. Las transacciones están compuestas por procesos, y éstos por tareas. Una tarea necesita un conjunto fijo de recursos. El conjunto de tareas del sistema no es fijo y sus atributos son arbitrarios (tiempo de llegada, uso de recursos, tiempo de cómputo, plazos de respuesta, valor de importancia, relaciones de precedencia, . . . ). 5 Parámetros de planificación de tareas Además de los parámetros ya definidos, se consideran: E : Instante de inicio más temprano RR : Uso de recursos. V : valor: importancia relativa de la tarea: Valor Críticas Firmes Acríticas Tiempo 6 Aspectos a considerar por el planificador Tareas expulsivas y no expulsivas. Tareas periódicas y aperiódicas. Tareas con diversos valores de importancia. Grupos de tareas con un sólo plazo de respuesta. Restricciones temporales globales. Requisitos de precedencia, comunicación y uso de recursos. Restricciones de alojamiento en sistemas multiprocesador. Tolerancia a fallos. Situaciones de sobrecarga. 7 Características de la planif. dinámica Es un enfoque más flexible. No es posible garantizar los plazos de respuesta. No es adecuada para sistemas críticos. Sobrecarga en tiempo de ejecución. La planificación dinámica no es estable. En el caso general, el problema de planificación es NP-completo. La calidad de un método de planificación se determina mediante comparación con un planificador clarividente. 8 Fases de planificación Análisis de planificabilidad Se comprueba si las tareas cumplen sus plazos de respuesta. Objetivo: maximizar el valor de las tareas correctas. Dos enfoques: Construcción del plan: Basado en planes : Las tareas se ejecutan si se garantizan sus plazos. Esfuerzo óptimo (best effort): El sistema hace todo lo que puede. No se hace análisis de viabilidad. Explícitamente: se construye un plan de ejecución explícito (EC) Implícitamente: el plan se construye al asignar prioridades a las tareas (estáticas ó dinámicas). Despacho: Cuál es la tarea siguiente a ejecutar?. 9 Asignación dinámica de prioridades 10 Asignación dinámica de prioridades El objetivo es asignar prioridades en forma dinámica a las tareas Se basa en algunos de los parámetros de las tareas. Es la base para métodos más complejos de planificación dinámica. La complejidad de la asignación depende de las características de las tareas. La prioridad se asigna cuando se activa una tarea. Métodos: Earliest Deadline First (EDF) Least Slack First (LSF) 11 Planificación Earliest Deadline First (EDF) – Planificación por prioridades expulsiva – La tarea con el plazo más cercano tiene la máxima prioridad – No se requiere tener conocimiento del tiempo de ejecución Es óptimo si: – Hay un solo procesador, sin recursos compartidos y con planificación expulsiva k Ti Tk (no-EDF) k Tk Tk dk di dk di Ti (EDF) 12 Planificación Earliest Deadline First (EDF) El algoritmo de planificación EDF utiliza el plazo de respuesta de las tareas como la base para tomar decisiones de planificación – una tarea con plazo más cercano es eligible para ejecución antes que otra tarea con plazo más largo. Se asume que el plazo absoluto de una tarea es fijo y constante durante el tiempo de vida de la tarea. Cuando EDF es utilizado como mecanismo de planificación, se requiere que todas las tareas cumplan con sus plazos. Esta condición puede verificarse en forma estática, si conocemos todas las tareas que habrá en el sistema así como todos sus parámetros. La carga de trabajo del sistema es estática si los parámetros no cambian, o puede ser dinámica si las tareas llegan al sistema en distintos tiempos, de forma que en cada llegada se realiza una prueba de aceptación (U < 1). 13 Planificación EDF • Algoritmo óptimo bajo un solo procesador y tareas expulsables. • ¿Cómo se sabe si un conjunto de tareas es planificable bajo EDF ? • Se pueden garantizar los plazos de respuesta si se cumple que: N U=∑ i =1 Ci ≤1 Ti • Optima con una cota de utilización del 100% • Si plazo < periodo, verifica los tiempos de respuesta en un intervalo igual al hiperperiodo con fase de tareas 0 (instante crítico). 14 Planificación EDF, suposiciones • • • • • Las tareas pueden ser periódicas o aperiódicas. Se ejecutan en un solo procesador Las tareas son expulsables y no comparten recursos Los plazos son iguales a los periodos. No hay sobrecarga del sistema operativo. 15 Ejemplo τ1 τ2 τ3 T D C U 30 30 10 0.333 40 40 10 0.250 50 50 12 0.240 El sistema cumple la prueba de utilización (U < 1). Con prioridades dinámicas (planificación EDF) se garantizan los plazos. 0.823 τ1 τ2 τ3 20 40 60 80 100 120 140 160 180 16 Ejemplo τ1 τ2 τ3 T D C U R 30 30 10 0.333 10 40 40 10 0.250 20 50 50 12 0.240 52 Con prioridades fijas (planificación rate monotonic) no se garantizan los plazos. 0.823 τ1 τ2 τ3 20 40 60 80 100 120 140 160 180 17 Planificación Least Slack First (LSF) Planificación por prioridades expulsiva – La tarea con menor holgura tiene la máxima prioridad – Es necesario tener conocimiento del tiempo de ejecución Holgura : tiempo de cómputo disponible en ejecución. Si ci(t) es el tiempo de computación restante en el instante t, la holgura de la tarea i es: slacki(t) = hi = di - t - ci(t) hk Tk ck hk < hk dk hi Ti t ci di pk > pk 18 Ejemplo τ1 τ2 τ3 T D C U 30 30 10 0.333 40 40 10 0.250 50 50 12 0.240 0.823 Híper período = 300 Con prioridades dinámicas (planificación LSF) se garantizan los plazos. 19 40 38 h3 35 30 30 h2 25 h1 20 20 τ3 τ2 τ1 15 10 idle 5 20 0 50 100 150 200 250 300 300 19.1 38 19.05 35 h3 19 30 30 18.95 h2 25 18.9 18.85 19.8 h1 20 20 19.85 19.9 19.95 20 20.05 20.1 20.15 20.2 τ153 τ2 τ101 idle 0 5 10 15 20 25 30 35 40 45 50 21 Ejemplo τ1 τ2 τ3 T D C U 11 11 3 0.2727 5 5 2 0.4000 8 8 2 0.2500 0.9227 Híper período = 440 Con prioridades dinámicas (planificación LSF) se garantizan los plazos. 22 8 h1 7 6 h3 5 4 h2 3 2 23 1 0 τ1 50 100 150 200 250 300 350 400 300 350 400 440 4 2 1.5 τ2 1 0.5 τ3 0 -0.5 idle-1 24 0 50 100 150 200 250 440 45 10 hi 9 8 7 6 5 4 3 2 1 0 25 0 5 10 15 20 25 Recursos compartidos 26 t Recursos compartidos y bloqueos Al considerar recursos compartidos y bloqueos, existe una analogía directa entre EDF y los algoritmos FPS (Fixed Priority Scheduling). Mientras que FPS adolece de inversión de prioridad, EDF sufre de inversión del tiempo límite (cuando un proceso necesita un recurso que actualmente está bloqueado por otro proceso con un deadline más largo). Se han desarrollado protocolos de acotación para EDF, aunque son más complejos que en FPS. En FPS, debido a que las prioridades son estáticas, resulta fácil determinar qué proceso puede bloquear al proceso analizado actualmente. Con EDF, esta relación es dinámica: depende de cuáles sean los procesos (con tiempos límite más largos) que estén activos cuando el proceso se active, y esto varía de una activación a otra a lo largo del hiperperiodo. 27 Ejemplo Pérdida de plazo límite T1 5 14 T2 6 16 T3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Inversió Inversión de prioridad 28 Recursos compartidos Los recursos compartidos de forma excluyente entre tareas se pueden gestionar bajo una planificación basada en prioridades dinámicas Protocolos: Herencia de prioridad dinámica (DIP) Techo de prioridad dinámico (DPCP) Stack Resource Policy (SRP) El protocolo de pila de recursos es una extensión del protocolo de techo de prioridad inmediato (IPCP) Permite tratar el caso general de varias réplicas del mismo recurso 29 T1 5 14 T2 6 16 T3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Herencia de prioridad diná dinámica (DIP) 30 P0 Techo de Prioridad Diná Dinámico (DPCP) > T0 C(Si) Æ P1 > P2 T1 T2 S0 S1 S2 P0 P0 P1 S0 T0 T0 : S0 T1 : S2 T2 : S2 S1 S2 anidada S0 S1 S0 S1 S1 S2 T1 S1 S2 S2 S2 T2 S1 S2 S1 S2 S1 S2 S1 S2 PT2 P0 P1 P2 t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 31 Techo de Prioridad Dinámica (DPCP) Propiedades Una tarea puede bloquearse como mucho una vez antes de entrar en su primera sección crítica. Evita los deadlock Un conjunto de n tareas es planificable bajo EDF si: n ∑ i =1 Ci + Bi ≤1 Ti Bi : tiempo de bloqueo de peor caso Ci : tiempo de ejecución de peor caso Ti : periodo de la tarea τi 32 Stack Resource Policy (SRP) Protocolo de control de concurrencia propuesto por Baker en 1991 para acotar la inversión de prioridad tanto en sistemas que utilizan prioridades estáticas como dinámicas. Funciona de modo muy similar al protocolo de techo de prioridad inmediato para FPS (de hecho, SRP influyó en el desarrollo de IPCP). A cada tarea, bajo SRP, se le asigna un nivel de apropiación, de forma separada de las prioridades, de tal manera que sean inversamente proporcionales a sus plazos relativos. Los niveles de apropiación reflejan los tiempos límite relativos de las tareas, de modo que cuanto más cortos sean, mayor será el nivel de apropiación (como si la prioridad estática de los procesos fuera asignada por el esquema deadline monotonic). En tiempo de ejecución, las tareas reciben una cota basada en el máximo nivel de apropiación de las tareas que utilizan el recurso. 33 Stack Resource Policy (SRP) Cuando se activa una tarea sólo puede desalojar a la actualmente en ejecución si su tiempo límite absoluto es más corto y su nivel de apropiación es mayor que la cota más alta de los recursos actualmente bloqueados. El resultado de este protocolo es idéntico al IPCP. Las tareas sufren únicamente un bloqueo que ocurre al ser activados. Así, se previenen los bloqueos mutuos y existe una fórmula simple para calcular el tiempo de bloqueo. Permite el caso general de varias réplicas del mismo recurso. 34 Stack Resource Policy (SRP) SRP garantiza que una vez que una tarea empieza, no se bloqueará hasta que se complete, y sólo pueden apropiarse del procesador tareas con una prioridad mayor. Por otra parte, previene los abrazos mortales, y acota el tiempo durante el cual una tarea puede ser bloqueada al que dure una sección crítica. No se necesitan colas de espera, de hecho una tarea nunca se bloquea durante su ejecución, simplemente no puede empezar a ejecutarse si su nivel de apropiación no es lo suficientemente alto. La diferencia esencial entre PCP y SRP es en el momento en que una tarea se bloquea. Mientras que en PCP una tarea se bloquea en el momento en que haga su primera solicitud de recursos, en el caso de SRP una tarea se bloquea en el momento en que trata de desalojar a otra. Este bloqueo temprano reduce ligeramente la concurrencia, pero ahorra cambios de contexto innecesarios, lo que simplifica la aplicación del protocolo, y permite compartir la pila de recursos en tiempo de ejecución. 35 Stack Resource Policy (SRP) Prioridad A cada tarea Ti se le asigna una prioridad pi que indica la importancia (urgencia) de la tarea respecto al resto de tareas en el sistema. La asignación de prioridades a las tareas puede realizarse estática ó dinámicamente. En cualquier instante t, Pa > Pb significa que la ejecución de Ta es más importante que Tb; por tanto, Tb será retrasada en favor de Ta. Las prioridades pueden ser asignadas a las tareas en base al criterio de planificación Rate Monotonic (RM), Deadline Monotonic (DM) ó Earliest Deadline First (EDF). 36 Stack Resource Policy (SRP) Nivel de desalojo Además de su prioridad pi , una tarea Ti está caracterizada por un nivel de desalojo, πi. El nivel de desalojo es un parámetro estático, asignado a la tarea en el momento de su creación y asociado con todas las instancias de la tarea. La propiedad esencial de los niveles de desalojo es que una tarea Ta puede desalojar a otra tarea Tb sólo si πa > πb. Esto también es cierto para las prioridades. Por tanto, la razón de distinguir entre niveles de desalojo y prioridades es que los niveles de desalojo son valores fijos que se pueden usar para predecir bloqueos potenciales también en presencia de esquemas de prioridad dinámica. pa < pb πa < πb iff iff tb + Db < ta + Da Db < Da (EDF) 37 EDF Da Ta ra Da > Db Æ πa < πb da > d b Æ p a < p b da Db Tb rb db Da Ta ra Db Da > Db Æ πa da < d b Æ p a da Tb rb < πb > pb db 38 Stack Resource Policy (SRP) Se asigna a cada tarea un nivel de desalojo, πi, tanto mayor cuanto menor sea su plazo relativo Di (asignación DM) Cada recurso R tiene un techo de prioridad dinámico, CR, que cambia con el número de réplicas, nR, disponibles [ { CR (nR ) = max { 0 } ∪ π i : nR < μiR }] nº de unidades de R que necesita Ti Para recursos con una sola instancia: C R = max [{ 0 } ∪ {π i : R puede bloquear a τ i }] Si R está libre su CR es cero, mientras que si R está asignado, su techo es igual al mayor nivel de desalojo de las tareas que puedan hacer uso de R 39 Stack Resource Policy (SRP) El techo de prioridad del sistema , Π, se define como: Π = max {C R } Una tarea se ejecuta sólo si: su prioridad es la más alta entre las tareas ejecutables, y πi > Π 40 Stack Resource Policy (SRP) Ejemplo τ1 R2 1 1 1 2 3 Nivel de desalojo: asignación DM τ2 τ1 3 R1 τ2 τ3 R3 1 τ3 Di πi μiR μiR 20 10 5 1 2 3 3 2 1 1 1 0 1 1 2 μiR 3 1 3 1 Unidades de recursos que necesitan las tareas 41 Stack Resource Policy (SRP) C R (nR ) = max πi μ R1 i 1 τ1 3 2 τ2 2 [{ 0 } ∪ {π i : nR < μiR }] Techo de prioridad dinámico del recurso R con nR réplicas disponibles (no asignadas) 3 τ3 1 R1 CR(3) CR(2) CR(1) CR(0) 0 1 2 3 R1 42 Stack Resource Policy (SRP) C R (nR ) = max πi μ 1 R2 i τ1 1 2 τ2 [{ 0 } ∪ {π : nR < μiR }] Techo de prioridad dinámico del recurso R con nR réplicas disponibles (no asignadas) 3 τ3 1 CR(3) CR(2) CR(1) CR(0) 0 - 1 - 2 0 3 2 R1 R2 R2 i 43 Stack Resource Policy (SRP) C R (nR ) = max πi μ R3 i 1 τ1 1 2 τ2 3 R3 [{ 0 } ∪ {π i : nR < μiR }] Techo de prioridad dinámico del recurso R con nR réplicas disponibles (no asignadas) 3 τ3 1 R1 R2 R3 CR(3) CR(2) CR(1) CR(0) 0 0 1 2 2 0 2 3 2 3 44 Stack Resource Policy (SRP) C R (nR ) = max π1=1 τ1 R2 1 1 1 2 3 τ2 R3 1 τ3 1 i : nR < μiR }] Techo de prioridad dinámico del recurso R con nR réplicas disponibles (no asignadas) π2=2 3 R1 [{ 0 } ∪ {π CR(3) CR(2) CR(1) CR(0) 0 0 1 2 2 0 2 3 2 3 R1 R2 R3 π3=3 45 Stack Resource Policy (SRP) Propiedades Si ninguna tarea puede arrancar hasta que Π < πi entonces: Ninguna tarea puede bloquearse después de arrancar No hay bloqueos transitivos ni deadlock Si la tarea de máxima prioridad más antigua está bloqueada, se desbloqueará como muy tarde en el instante en que la tarea actualmente en ejecución deje de poseer recursos no desalojables Un conjunto de n tareas es planificable bajo EDF si: ⎛ k Ci ⎞ Bk ⎜⎜ ∑ ⎟⎟ + ∀k ≤1 k =1,..., n ⎝ i =1 Di ⎠ Dk Bi : tiempo de ejecución de la sección crítica más larga de cualquier tarea tal que Di ≤ Dk para i != k Ci : tiempo de ejecución de peor caso Di : plazo límite τk 46 Sobrecargas. Estabilidad 47 Sobrecargas. Estabilidad • En caso de sobrecarga, comportamiento impredecible: • • • Esto ocurre: • • • No se sabe qué tareas fallarán. (No está claro ?) cual debe ser el algoritmo a emplear. Cuando se producen sobrecargas inesperadas. Cuando las tareas llegan al sistema o terminan en cualquier instante. Cuando los parámetros de las tareas cambian constantemente. En el caso peor puede que no se cumpla ningún plazo. Considerar la importancia de las tareas. Que hacer ???. 48 Ejemplo τ1 τ2 τ3 τ4 T=D C U P 6 2 0.333 Alta 10 4 0.400 Media-alta 12 3 0.250 Media-baja 15 4 0.270 Baja Rate monotonic ta Es b le τ1 τ2 τ3 τ4 2 4 6 8 10 12 14 16 18 20 22 24 49 Ejemplo τ1 τ2 τ3 τ4 T=D C U 6 2 0.333 10 4 0.400 12 3 0.250 15 4 0.270 EDF I ta b s e n le τ1 τ2 τ3 τ4 2 4 6 8 10 12 14 16 18 20 22 24 50 Conclusiones La planificación dinámica es: más flexible. necesaria en ciertos tipos de sistemas. permite contemplar diversos escenarios. importante sobrecarga en tiempo de ejecución. tratamiento de recursos compartidos costoso. no es estable. Es un tema abierto de investigación. 51 Algoritmo MUF (Maximum-Urgency-First) Urgencia: Criticidad (Prioridad estática). Prioridad Dinámica. Prioridad de Usuario. Criticidad Prioridad Dinámica Usuario c bits d bits u bits 52 Algoritmo MUF (Maximum-Urgency-First τ1 τ2 τ3 τ4 Prioridad Criticidad (RM) (MUF) T=D C U 6 2 0.333 Alta Alta 10 4 0.400 Media-alta Ata 12 3 0.250 Media-baja Alta Baja Baja 15 4 0.270 ta Es b le τ1 τ2 τ3 τ4 2 4 6 8 10 12 14 16 18 20 22 24 53 TEMA 6 Planificación dinámica de tareas 54