La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 27 de Marzo de 2004.

Presentaciones similares


Presentación del tema: "Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 27 de Marzo de 2004."— Transcripción de la presentación:

1 Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 27 de Marzo de 2004

2 Scheduling Real-Time in Distributed Systems: A survey Alex Gantman Pei-Ning Guo James Lewis Fakhruddin Rashid

3 1. INTRODUCCIÓN - Los algoritmos ordinarios de scheduling intentan asegurar la justicia (o balance) entre tareas, el progreso mínimo para cualquier tarea individual, y la prevención de starvation (inanición) y deadlock. Para el scheduler de tareas de tiempo real, esos objetivos son frecuentemente superficiales. - Para el scheduler de tareas de tiempo real lo primario es la conformidad u obediencia del deadline. - El scheduling de tiempo real depende del reloj en tiempo real. - Para schedulings ordinarios el preemption es transparente a la tarea. Esto no se mantiene para sistemas de tiempo real. - Hacer schedulers preemptive de tareas de tiempo real es mucho más complejos que con sus contrapartes ordinarias.

4 2. FORMULACIÓN DEL PROBLEMA 2.1 CARACTERÍSTICAS DE TAREA Posiblemente el término más importante a definir en nuestro contexto es la tarea de tiempo real: Definición 1. Una instancia de una tarea es el objeto básico de scheduling. Sus propiedades fundamentales son tiempo de llegada y tiempo de ejecución aproximado. En suma, una tarea de tiempo real especifica un deadline por el cual se debe completar la ejecución.

5 2.1.1 PATRONES DE LLEGADA (Arrival Patterns) Basado en sus patrones de llegada en tiempo, las tareas pueden ser divididas en 2 categorías: periódicas y aperiódicas. Se dice que una tarea ha llegado cuando está disponible para ejecución, independientemente de la disponibilidad del procesador y las dependencias entre tareas. Cuando todas las dependencias de una tarea son satisfechas y un procesador está disponible, esa tarea es liberada para ejecución. - Las tareas aperiódicas tienen patrones de llegada arbitrarias. - Las tareas periódicas tienen patrones de llegada muy regulares.

6 2.1.2 DEPENDENCIAS ENTRE TAREAS Dependiendo de la definición del sistema de la tarea, podrían existir dependencias entre tareas. Una tarea j es definida a ser dependiente sobre un conjunto de tareas S(j) si j no puede comenzar a ejecutarse hasta que todas las tareas de S(j) han completado su ejecución. - El scheduling de tareas independientes es mucho más simple ya que no existen restricciones que satisfacer. Los schedulers que tienen que tratar con la dependencia de tareas normalmente construyen un grafo acíclico para representarlos. Un conjunto de tareas interdependientes es usualmente referido como una aplicación o tarea de fuerza. Debido a que la mayoría de tales aplicaciones son subdivididas en tareas en tiempo de compilación, las tareas interdependientes son usualmente asunto de schedulers estáticos.

7 2.1.3. LAXITUD (FLEXIBILIDAD) DEL DEADLINE - Todas las tareas definen un deadline por el cual tienen que completar su ejecución. - El problema de buscar el schedule óptimo para tareas de tiempo real ha sido visto como un problema NP-completo. No todos los sistemas pueden ofrecer resolverlo como un problema complejo. En cambio, muchos sistemas implementan un scheduler heurístico que, más que garantizar una completa conformidad de deadline, también intenta minimizar las tazas de deadline-miss (pérdida de deadline) o introducir algunas cantidades de laxitud para cada deadline (o ambas). Laxitud es la cantidad de tiempo en el cual una tarea puede perder su deadline y aun evitar consecuencias severas. - Los sistemas de tiempo real son hard o soft, dependiendo de sus laxitudes y la severidad de las consecuencias de deadlines perdidos.

8 2.2 ARQUITECTURA DEL SISTEMA. El término de sistemas distribuidos se puede referir a un conjunto de estaciones de trabajo o de una máquina paralela de multiprocesadores. Estos 2 tipos de sistemas varían enormemente en los tipos de trabajo que tienden a ser ejecutados. - Las estaciones de trabajo en red tienden a tener la configuración del hardware dinámico y correr aleatoriamente, cargas de trabajo no predecibles. - Las máquinas paralelas tiene nodos de procesamiento fijos y tienden a ejecutar tareas que pertenecen a una aplicación y así, tener un comportamiento más predecible.

9 - En sistemas homogéneos no es necesaria la información a ser almacenada en asociación con cada procesador y sólo el deadline, tiempo de ejecución aproximada, y dependencia sobre otras tareas son asociadas con cada tarea. - En sistemas heterogéneos las tareas deben especificar requerimientos de recursos que puede ser satisfechos por solo un par de procesadores. Cada procesador debe proveer una lista de recursos disponibles y cada tarea debe especificar sus requerimientos completos de recursos. También, dado que procesadores y enlaces de comunicación pueden variar en rapidez, la predicción en el tiempo de ejecución para tareas es mucho más difícil. La topología de sistemas distribuidos es tambien importante a considerar: árboles, meshes, hipercubos, etc.

10 3. OPCIONES DE DISEÑO 3.1 ESTÁTICO VS. DINÁMICO Los schedulers de aplicaciones de tiempo real pueden ser categorizados como estáticos o dinámicos dependiendo del tiempo en el cual la información necesaria para la consumación de una aplicación es disponible. Si las aplicaciones de tiempo real pueden ser divididas en tareas con tiempos de ejecución bien conocidos, el scheduling puede ser hecho estáticamente en tiempo de compilación. El scheduling estático toma ventaja de tareas que tienen una estructura bien definida para optimizar la finalización deadline.

11 Cuando el conocimiento apriori de la consumación de una tarea no es disponible en el sistema, el scheduling dinámico puede ser utilizado. Un scheduler dinámico utiliza la localidad actual de los recursos del sistema para determinar la factibilidad de procesamiento de aplicaciones de tiempo real. Los algoritmos estáticos pueden ser clasificados en tres categorías principales: 1. Basados en prioridad: El orden de una tarea de ejecución está basada sobre prioridades de asignación. 2. Basados en clustering: Intentan agrupar las tareas con dependencias de datos en el mismo procesador. Esto sirve para minimizar el costo de inter-process communication, pero no facilita la escalabilidad de los recursos del sistema.

12 3. Basados en duplicación: Para tomar ventaja del número de procesadores disponibles, las tareas pueden ser duplicadas en orden para aligerar las dependencias. La escalabilidad de esquemas basados en duplicación es benéfico para la construcción de schedulers eficientes de tareas. Es importante recalcar que los schedulers estáticos tienden a tener más tiempo y espacio a su disposición y por tanto, se pueden esforzar por técnicas más costosas para producir schedulers mejores. En esquemas de scheduling dinámicos las tareas son asignadas a los procesadores en tiempo de ejecución. - Eficiencia es la principal preocupación para schedulers dinámicos. El scheduling dinámico de tareas tiene el beneficio principal de estar habilitado para cambios en el entorno de programación, así proveen mayor disponibilidad del sistema.

13 3.2 PRIORIDAD Y PREEMPTION Implicitamente, todos los sistemas de tiempo real son basados en prioridad. Las tareas de tiempo real son siempre priorizadas basadas en sus deadlines. Adicionalmente, las prioridades pueden ser basadas en factores tales como tiempo de procesamiento, frecuencia de ejecución, o la severidad de los deadlines perdidos. Las prioridades pueden ser: - Fijas: son asignadas estáticamente y no cambian con el tiempo. - Dinámicas: pueden ser cambiadas en tiempo de ejecución.

14 Un mecanismo útil en el soporte de políticas de prioridad es el preemption. Siendo la posibilidad de preempt una tarea de baja prioridad y calendarizar una con más alta prioridad, lo que permite al scheduler más flexibilidad en la construcción del schedule. Los schedulers preemptive tienen más complejidad que los schedulers no preemptive y requieren más recursos.

15 3.3 ORIENTADOS A ASIGNACIÓN VS. ORIENTADOS A SECUENCIA El problema del scheduling de tareas sobre procesadores múltiples puede ser visto como la búsqueda de la factibilidad del schedule. La factibilidad de un schedule es el conocimiento de un conjunto de restricciones (consumación del deadline, dependencia de tareas, etc). El espacio de búsqueda puede ser representado como un árbol donde cada nodo e suna asignación tarea-procesador. Cualquier camino desde la raíz a la hoja del árbol es un schedule. La mayoría de los algoritmos de scheduling recorren el árbol en orden depth- first. Si por cada nivel del árbol de búsqueda un algoritmo elige una tarea e intenta asignarla a algún procesador, entonces éste está basado en asignación. Por otro lado, si un algoritmo elige un procesador primero y luego trata de buscar una tarea para él, éste está basado en secuencia.

16 4. ALGORITMOS 4.1 RATE MONOTONIC-SCHEDULING (RMS) En 1973 Liu y Laylan prublicaron su artículo [Liu73] el cual provee los fundamentos teóricos de los algoritmos modernos de scheduling para sistemas de tiempo real. El primer modelo de scheduling introducido por Liu y Layland es el RMS. Éste es un scheduler con prioridades fijas estático, en el cual la prioridad de una tarea es dada por una función monotónica de su rango. Una vez que las prioridades son asignadas, es levantado en el procesador para ejecutar una tarea disponible con la prioridad más alta. Los autores demuestran que si un conjunto dado de tareas de tiempo real pueden ser scheduled (calendarizados) por cualquier algoritmo, entonces éste puede ser calendarizado por el RMS.

17 El algoritmo RMS provee unas buenas bases de matemáticas para determinar la cota máxima por la utilización del procesador. Posteriormente Liu y Layland desarrollaron un algoritmo mixto que utiliza RMS para la mayoría de las tareas y el algoritmo deadline-conducido (tambien creados por ellos) para el resto del scheduling. Aunque los algoritmos mixtos no pueden lograr una completa utilización del procesador, en general proveen la mayoría de los beneficios de un enfoque deadline-conducido mientras se mantiene facilmente implementable en los sistemas existentes. Aunque los algoritmos mixtos fueron desarrollados en respuesta a las dificultades de implementación, todos los algoritmos presentados en esa subsección son muy analíticos (imprácticos). Sin embargo, el análisis teórico presentado en [Liu73] provee las bases matemáticas para la mayoría de los análisis de los schedulings actuales.

18 4.2 RELEASE GUARD PROTOCOL (PROTOCOLO GUARDÍAN DE LIBERACIÓN) Los protocolos de sincronización son usados para gobernar la liberación de tareas tal que las restricciones de precedencia entre ellas son satisfechas. Esos protocolos son diseñados para las aplicaciones independientes del schedule que consisten de una sucesión de tareas periódicas, preemptables y con prioridades fijas sobre un sistema heterogéneo. Las tareas t(a,1), t(a,2),..., t(a,n) de una aplicación a, tienen dependencias tales como t(a,j+1) depende solo de t(a,j), para 1<=j<n. Note que la dependencia DAG es actualmente una lista. Todas las tareas en una aplicación tienen el mismo periodo. Además, cada tarea declara el procesador su instancia en la cual debe ejecutarse.

19 Las prioridades son asignadas a las tareas independientes del scheduler. Cada procesador siempre ejecuta su tarea liberada con la prioridad más alta. Finalmente, cada aplicación tiene una fase que esta definida como el tiempo de llegada de la primera instancia de la primer tarea para la aplicación. El protocolo de sincronización directa (DS protocol) opera sobre señales de sincronización enviadas entre tareas. Una tarea señaliza a su sucesor inmediato cuando el primero ha completado su ejecución. A la llegada de la señal, una instancia de su sucesor es liberada inmediatamente. Si el procesador destino tiene una prioridad baja en la ejecución de sus tareas, este es preempted.

20 El DS protocol tiene una complejidad baja, overhead mínimo, y logra en promedio una corta respuesta fin-a-fin (ERR) tiempos. El ERR es definido como el tiempo entre las liberación de la primer tarea de una aplicación y el tiempo de completación de la última tarea. - Es una elección razonable para aplicaciones con restricciones soft de tiempo, cadenas de tareas cortas, o con tareas con una utilización baja del procesador. - Para aplicaciones que tiene una utilización alta del procesador, cadenas de tareas largas y restricciones hard de tiempo, el DS protocol produce un pero caso en ERR tiempos.

21 El protocolo de modificación de fase (PM protocol) insiste en que las instancias de todas las tareas deben ser liberadas periodicamente de acuerdo a los periodos de sus aplicaciones padres. Para asegurar que las restricciones de dependencias entre tareas es satisfecha, cada tarea está dada en su propia fase. El PM protocol necesita una sincronización estrica de reloj para garantizar que las restricciones de precedencia entre tareas son satisfechas. Adicionalmente, los tiempos de inter-liberación de tareas son ocasionalmente mayor que el periodo; esto puede violar las restricciones de precedencia. Por ello, una ligera modificiación a este protocolo es propuesta: el MPM.

22 El protocolo modificado de modificación de fase (MPM protocol) controla la liberación de la siguiente instancia de una tarea. Esto es hecho mediante la introducción de un retardo en el envío de la señal de sincronización entre los tiempos en que se completa la ejecución de cada predecesor y el tiempo en que el scheduler libera la siguiente instancia. Sin embargo, MPM logra esto sin requerir una sincronización de reloj. Esto es importante ya que la sincronización estrícta de reloj es difícil de lograr en la práctica.

23 El protocolo Release Guard (RG protocol) suministra un método con el cual se puede obtener una cota superior de la respuesta en tiempo de tareas. - Combina la fuerza de los protocols DS y PM evitando sus inconvenientes. - Controla las liberaciones de una tarea tal que los tiempos de inter-liberación de cualquiera de 2 instancias consecutivas no es más corta que el periodo. Un guardia de liberación g(a,j+1) es un reloj asociado con una tarea j para una aplicación a que se esfuerza de que exista pronto un tiempo de liberación permitido t(a,j+1). Si una instancia del predecesor inmediato de t(a,j) se completa después de g(a,j) una instancia de t(a,j) puede ser liberada inmediatamente. De otro modo la instancia no será liberada hasta el tiempo g(a,j).

24 4.3 SCHEDULING BASADO EN BÚSQUEDA Y DUPLICACIÓN Las aplicaciones de tiempo real pueden ser calendarizadas más eficientemente en sistemas con procesadores extras o vacíos a través de la duplicación de tareas. El algoritmo de scheduling basado en búsqueda y duplicación (SDBS Search and Duplication Based Scheduling) es un scheduling estático diseñado para minimizar los tiempos de consumación de aplicaciones de tiempo real, tomando la ventaja de procesadores sub-utilizados. Este algoritmo produce schedules eficientes que son facilmente particionados en tareas. Se asume que las tareas son non-preemptive y que los procesos se ejecutan en un conjunto de procesadores homogéneos, conectados y no acotados.

25 1 4 3 2 7 6 5 9 8 10 5 3 3 2 3 4 3 2 5 8 2 5 3 23 4 2323 56 73 Aplicación particionada en 10 tareas.

26 El enfoque principal del algoritmo es identificar las tareas críticas dentro de cada aplicación. Una tarea crítica es un nodo dentro del DAG de dependencia de tareas que tiene más de un nodo padre. - Las tareas críticas son identificadas tal que la consumación de tiempos de sus predecesores puede ser evaluado. - El predecesor con el último tiempo de consumación podría ejecutarse en el mismo procesador como la tarea crítica en orden para aligerar los costos de la inter-process communication.

27 El algoritmo SDBS desarolla 3 pasos para determinar el schedule óptimo para las tareas de una aplicación. 1. Se calcula el tiempo más pronto de inicio (ECT earliest start time) y el tiempo más pronto de terminación (ECT earliest completion time) para cada nodo dentro del DAT de dependencia de tareas.

28 2. Se reescribe el SDBS como un arbol invertido mediante la duplicación de cualquier nodo que tenga más de un hijo. El DAG es cruzado en reversa iniciando con el nodo de salida. 3. Se asigna a cada nodo del árbol invertido un procesador. Un nodo es siempre asignado a ejecutarse en el mismo procesador si el precesor para el cual la suma de ECT y el costo de comunicacion de este nodo es el más grande.

29 Debido a la naturaleza homogénea del sistema, los tiempos de ejecución de las tareas no varian entre los procesadores. Por lo tanto, la duplicación de tareas sobre procesadores separados solo sirve para minimizar los costos de comunicación. Uno de los inconvenientes del algoritmo SDBS es que realiza la suposición no realista de que existe un número ilimitado de procesadores para manejar cualquier cantidad de tareas duplicadas.

30 4.4 SCHEDULING DINÁMICO ADAPTATIVO EN TIEMPO REAL RT-SADS posee una habialidad única de afinarse a si mismo de acuerdo al estado actual del sistema. El algoritmo RT-SADS es diseñado para schedulings de tareas de soft tiempo real aperiódicas, non-preemtable, independientes, con deadlines sobre un conjunto de procesadores idénticos con una arquitectura de memoria distribuida. El principal objetivo de los diseñadores de este algoritmo de scheduling es la escalabilidad de los deadlines con respecto al incremento en el número de procesadores y rangos de llegadas de tareas.

31 RT-SADS utiliza un procesador dedicado para realizar búsquedas incrementales a través de una asignación al espacio procesador- tarea. RT-SADS ajusta a sí mismo el estado de duración de scheduling dependiendo de la carga del procesador, rango de llegada de tareas y slack (tiempo máximo que una tarea puede retardarse sin perder su deadline). Atif y Hamidzadeh (los creadores) describen un conjunto de experimentos evaluando a RT-SADS y comparandolo con un aloritmo orientado a secuencia llamado D-COLS (Distributed Continuos On-Line Scheduling). D-COLS fue desarrollado por los mismos autores solo 2 años antes. Ambos algoritmos son similares en todas las maneras. El resultado de sus experimentos demostraron que el rendimiento del algoritmo orientado a secuencia incremento moderadamente con el número de procesadores en el sistema de 2 a 8 y después decrementó con cada procesador adicional. Sin embargo, el enfoque orientado a asignación, logro un incremento lineal conforme el número de procesadores crecía.

32 5. TRABAJO FUTURO - Muy poco trabajo ha sido realizado para explorar el scheduling de tareas de tiempo real en sistemas heterogéneos. Los sistemas heterogéneos son demasiado difíciles de analizar y controlar desde una localidad centralizada que los sistemas homogéneos. Esto dirige a una segunda observación. Parece ser que virtualmente: - No existen trabajos del todo en scheduling distribuido de tareas de tiempo real. Todos los algoritmos de scheduling para tareas de tiempo real que se tienen son centralizados. Sería interesante investigar las posibilidades de scheduling de tareas de tiempo real en otro estilo distribuido.

33 6. CONCLUSIONES - Se espera que el lector se haya introducido al tema de scheduling de tareas de tiempo real en sistemas distribuidos. - Se presentan las diferentes interpretaciones del problema y las varias opciones disponibles de los diseñadores de solución. - Se espera que se haya presentado al lector un amplio entendimiento del problema y el rango de soluciones posibles. Finalmente, se sugieren posibles direcciones de investigación futura.


Descargar ppt "Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 27 de Marzo de 2004."

Presentaciones similares


Anuncios Google