Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación Sistemas Operativos Andrés Felipe Barco Santa Pontificia Universidad Javeriana Febrero de 2010 Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Concurrencia La planificación Planificación de hilo Abandonando la CPU Concurrencia Tan solo apariencia Dado que todas las máquinas abstractas pareciecen que estuvieran ejecutandose a la misma vez, se dice que se ejecutan concurrentemente: existe una apariencia de operaciones simultaneas gracias a la alta velocidad de multiplexación de la CPU. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Concurrencia La planificación Planificación de hilo Abandonando la CPU Concurrencia Tan solo apariencia Dado que todas las máquinas abstractas pareciecen que estuvieran ejecutandose a la misma vez, se dice que se ejecutan concurrentemente: existe una apariencia de operaciones simultaneas gracias a la alta velocidad de multiplexación de la CPU. Esta concurrencia es la que brinda la capacidad de multiprogramación. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Concurrencia La planificación Planificación de hilo Abandonando la CPU La planificación Scheduler La planificación hace referencia a la tarea de manejar la CPU compartiendola con una comunidad de procesos/hilos listos para correr. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Concurrencia La planificación Planificación de hilo Abandonando la CPU La planificación Scheduler La planificación hace referencia a la tarea de manejar la CPU compartiendola con una comunidad de procesos/hilos listos para correr. scheduler policy: determina cuando un hilo debe ser desalojado de la CPU y cual hilo listo debe ser asignado a continuación. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Concurrencia La planificación Planificación de hilo Abandonando la CPU La planificación Scheduler La planificación hace referencia a la tarea de manejar la CPU compartiendola con una comunidad de procesos/hilos listos para correr. scheduler policy: determina cuando un hilo debe ser desalojado de la CPU y cual hilo listo debe ser asignado a continuación. scheduler mechanism: determina cómo un manejador de procesos puede determinar que es tiempo de multiplexar la CPU, y cómo un hilo puede ser asignado y removido de la CPU (cambios de contexto). Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Concurrencia La planificación Planificación de hilo Abandonando la CPU Planificación de hilo Figura: Tomado de Operating Systems, 3 Edition, Gary Nutt Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Concurrencia La planificación Planificación de hilo Abandonando la CPU Abandonando la CPU Existen cuatro posibles razones para que un hilo abandone la CPU. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Concurrencia La planificación Planificación de hilo Abandonando la CPU Abandonando la CPU Existen cuatro posibles razones para que un hilo abandone la CPU. 1 El hilo completa su ejecución. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Concurrencia La planificación Planificación de hilo Abandonando la CPU Abandonando la CPU Existen cuatro posibles razones para que un hilo abandone la CPU. 1 El hilo completa su ejecución. 2 El hilo realiza petición de recursos y este no está disponible. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Concurrencia La planificación Planificación de hilo Abandonando la CPU Abandonando la CPU Existen cuatro posibles razones para que un hilo abandone la CPU. 1 El hilo completa su ejecución. 2 El hilo realiza petición de recursos y este no está disponible. 3 El hilo decide ceder la CPU voluntariamente. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Concurrencia La planificación Planificación de hilo Abandonando la CPU Abandonando la CPU Existen cuatro posibles razones para que un hilo abandone la CPU. 1 El hilo completa su ejecución. 2 El hilo realiza petición de recursos y este no está disponible. 3 El hilo decide ceder la CPU voluntariamente. 4 El hilo es desalojado de la CPU porque el sistema decide detener el hilo hasta nueva orden. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas En el hardware Organización de planificación de procesos El planificador En el hardware Los mecanismos Los mecanismos de planificación de la CPU dependen de caracterı́sticas en el hardware, la más importante es si la computadora está o no configurada con un dispositivo de reloj. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas En el hardware Organización de planificación de procesos El planificador En el hardware Los mecanismos Los mecanismos de planificación de la CPU dependen de caracterı́sticas en el hardware, la más importante es si la computadora está o no configurada con un dispositivo de reloj. Las demás funcionalidades del scheduler son implementadas en software. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas En el hardware Organización de planificación de procesos El planificador Organización de planificación de procesos Conceptualmente el scheduler esta dividido en tres partes lógicas. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas En el hardware Organización de planificación de procesos El planificador Organización de planificación de procesos Conceptualmente el scheduler esta dividido en tres partes lógicas. Encolador Cuando un proceso cambia su estado a listo, su descriptor se actualiza para relfejar el cambio. El enqueuer asigna un puntero del descriptor en la lista de procesos que esperan la CPU. El enqueuer puede computar una prioridad en el hilo o puede hacerse al momento de sacarlo de la lista. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas En el hardware Organización de planificación de procesos El planificador Organización de planificación de procesos Cambio de Contexto Cuando el scheduler decide cambiar de un proceso a otro para el control de la CPU, el context switcher guarda todos los datos de los registros de la CPU (PC, IR, condition status, processor status, ALU status) en el descriptor del hilo. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas En el hardware Organización de planificación de procesos El planificador Organización de planificación de procesos Despachador El dispatcher es invocado después de que el proceso de la aplicación ha sido desalojado de la CPU (el contexto del dispatcher es cargado para ejecutarse). Posteriormente selecciona un hilo que esté en lista de espera y le asigna la CPU (haciendo otro cambio de contexto desde el mismo hacia el hilo). Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas En el hardware Organización de planificación de procesos El planificador El planificador Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Grabando el Contexto Encolador El cambio de contexto afecta significativamente el comortamiento del sistema, dado que los computadores modernos tienen varios registros generales y de estado. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Grabando el Contexto Encolador El cambio de contexto afecta significativamente el comortamiento del sistema, dado que los computadores modernos tienen varios registros generales y de estado. El cambio contexto usa ordinariamente las operaciones convencionales de load y store para guardar la información de los registros. (n + m) b x K time units Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Cambio de Contexto Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Complejidad del Cambio Hipotesis Un procesador requiere 50 nanosegundos para almacenar una unidad de información (b x K = 50ns). Suponga un bus de 32-bits y registros de 32-bits de ancho. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Complejidad del Cambio Hipotesis Un procesador requiere 50 nanosegundos para almacenar una unidad de información (b x K = 50ns). Suponga un bus de 32-bits y registros de 32-bits de ancho. Cada registro requiere 50 nanosegundos para almacenar su contenido. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Complejidad del Cambio Hipotesis Un procesador requiere 50 nanosegundos para almacenar una unidad de información (b x K = 50ns). Suponga un bus de 32-bits y registros de 32-bits de ancho. Cada registro requiere 50 nanosegundos para almacenar su contenido. Si existen n = 32 registros de proposito general y m = 8 registros de estados, el tiempo total para grabar los registros es 40x50 nanosegundos, es decir, 2 microsegundos. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Complejidad del Cambio Otros 2 microsegundos son usados para restaurar los registros para que otro hilo ejecute Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Complejidad del Cambio Otros 2 microsegundos son usados para restaurar los registros para que otro hilo ejecute (ignorando el tiempo de selección de hilo). Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Complejidad del Cambio Otros 2 microsegundos son usados para restaurar los registros para que otro hilo ejecute (ignorando el tiempo de selección de hilo). El tiempo total es más de 4 microsegundos dado el tiempo de cambio de contexto del dispatcher y el tiempo tomado en elegir el siguiente hilo. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Complejidad del Cambio Otros 2 microsegundos son usados para restaurar los registros para que otro hilo ejecute (ignorando el tiempo de selección de hilo). El tiempo total es más de 4 microsegundos dado el tiempo de cambio de contexto del dispatcher y el tiempo tomado en elegir el siguiente hilo. Gasto Un procesador de 1Ghz puede ejecutar una instrucción de registro en 2 nanosegundos. Esto significa que durante los 4 microsegundos requeridos para un cambio de contexto, el procesador pudo haber ejecutado cerca de 2,000 instrucciones haciendo trabajo útil!!! Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Compartir la CPU Voluntariamente Yield Parte de los mecanismos del scheduler es la forma invocarlo. La más sencilla es permitiendo a los procesos/hilos invocar al planificador explı́citamente, compartiendo la CPU voluntariamente. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Compartir la CPU Voluntariamente Yield Parte de los mecanismos del scheduler es la forma invocarlo. La más sencilla es permitiendo a los procesos/hilos invocar al planificador explı́citamente, compartiendo la CPU voluntariamente. yield(r,s){ memory[r] = PC; PC = memory[s]; } Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Compartir la CPU Voluntariamente Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Compartir la CPU Involuntariamente Interval Timer El sistema de interrupciones fuerzan perdiodicamente a los procesos a ejecutar la intrucción yield. El cuestión es incorporar un dispositivo de manejo de tiempo (interval timer device), el cual produzca una interrupción cada vez que el tiempo expira. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Compartir la CPU Involuntariamente Interval Timer El sistema de interrupciones fuerzan perdiodicamente a los procesos a ejecutar la intrucción yield. El cuestión es incorporar un dispositivo de manejo de tiempo (interval timer device), el cual produzca una interrupción cada vez que el tiempo expira. EL interval timer lanza una interrupción cada K x T ticks de reloj. Este valor es programable por medio del número de ticks deseados y asignado por una función llamada programmable interval timer. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Compartir la CPU Involuntariamente IntervalTimer(){ InterruptCount = InterruptCount - 1; if(InterruptCount <= 0){ InterruptRequest = True; InterruptCount = K; } } Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Grabando el Contexto Cambio de Contexto Complejidad del Cambio Compartir la CPU Voluntariamente Compartir la CPU Involuntariamente Compartir la CPU Involuntariamente IntervalTimer(){ InterruptCount = InterruptCount - 1; if(InterruptCount <= 0){ InterruptRequest = True; InterruptCount = K; } } SetInterval(<programmable value>){ K = <programmable value>; InterruptCount = K; } Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Caracterı́sticas del Planificador Los algoritmos de planificación modernos usan prioridades internas (prioridades), este determina una jerarquı́a con la cual el dispatcher selecciona el proceso a ejecutar. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Caracterı́sticas del Planificador Los algoritmos de planificación modernos usan prioridades internas (prioridades), este determina una jerarquı́a con la cual el dispatcher selecciona el proceso a ejecutar. En prioridades externas cada usuario es asignado con una prioridad estática. Cuando un usuario crea un proceso la prioridad interna es obtenida con una función sobre la externa. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Caracterı́sticas del Planificador Los algoritmos de planificación modernos usan prioridades internas (prioridades), este determina una jerarquı́a con la cual el dispatcher selecciona el proceso a ejecutar. En prioridades externas cada usuario es asignado con una prioridad estática. Cuando un usuario crea un proceso la prioridad interna es obtenida con una función sobre la externa. La prioridad tambien se puede definir dinamicamente por circunstancias como la cantidad de tiempo que lleva esperando ser ejecutado. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Compartiendo la CPU Si el planificador quiere compartir la CPU equitativamente a n procesos, durante un intervalo de tiempo K ; cada proceso se ejecutara en la CPU un intervalo de tiempo de K /n. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Compartiendo la CPU Si el planificador quiere compartir la CPU equitativamente a n procesos, durante un intervalo de tiempo K ; cada proceso se ejecutara en la CPU un intervalo de tiempo de K /n. Time Quantum Si el planificador utiliza un interval timer, cada proceso se ejecutara por un quantum de tiempo; también llamado timeslice. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Modelo de Estudio P = {Pi |0 <= i <= n} Conjunto de procesos modernos. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Modelo de Estudio P = {Pi |0 <= i <= n} Conjunto de procesos modernos. {Pi,j } Lista de hilos que representan el proceso Pi . Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Modelo de Estudio P = {Pi |0 <= i <= n} Conjunto de procesos modernos. {Pi,j } Lista de hilos que representan el proceso Pi . S(Pi,j ) Estados posibles para cada hilo (running, ready, blocked) Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Modelo de Estudio P = {Pi |0 <= i <= n} Conjunto de procesos modernos. {Pi,j } Lista de hilos que representan el proceso Pi . S(Pi,j ) Estados posibles para cada hilo (running, ready, blocked) Service time T (pi,j ): tiempo en el cual el hilo debe estar corriendo en la CPU antes para completar su trabajo. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Wait time W (pi,j ): tiempo en el que el hilo espera en estado listo antes de pasar por primera vez a la CPU. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Wait time W (pi,j ): tiempo en el que el hilo espera en estado listo antes de pasar por primera vez a la CPU. Turnaround time pi,j , TTRnd (pi,j ): tiempo que pasa entre el primer momento en el que el hilo entra a lista de espera y el momento en el que el hilo se ejecuta por última vez. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Caracterı́sticas del Planificador Compartiendo la CPU Modelo de Estudio Métricas Métricas La metrica más importante para medir el comportamiento del sistema es el Wait time (llamado response time en sistemas de tiempo compartido), dado que al usuario le interesa el tiempo que debe esperar para que la aplicación responda. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Planificación no apropiativa Nonpreemptive Estas estrategias permiten a los hilos ejecutarse hasta su terminación. Es decir, el hilo nunca vuelve a la lista de hilos listos para correr. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Planificación no apropiativa Nonpreemptive Estas estrategias permiten a los hilos ejecutarse hasta su terminación. Es decir, el hilo nunca vuelve a la lista de hilos listos para correr. First Come First Served Shorest Job Next Priority Scheduling Deadline scheduling Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Primero en llegar primero en ser servido FCFS Esta estrategia asigna prioridad a los hilos con respecto al orden de llegada a la lista de espera. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Primero en llegar primero en ser servido FCFS Esta estrategia asigna prioridad a los hilos con respecto al orden de llegada a la lista de espera.El enqueuer asigna la prioridad al entrar a lista y dispatcher ejecuta de acuerdo a estas. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Primero en llegar primero en ser servido FCFS Esta estrategia asigna prioridad a los hilos con respecto al orden de llegada a la lista de espera.El enqueuer asigna la prioridad al entrar a lista y dispatcher ejecuta de acuerdo a estas. Es fácilmente implementable con una cola FIFO. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Trabajo más corto primero SJN Suponga que se conocen de antemano los tiempos de servicio de los hilos. El planificador escoge para ejecución el hilo cuyo tiempo de servicio sea menor. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Trabajo más corto primero SJN Suponga que se conocen de antemano los tiempos de servicio de los hilos. El planificador escoge para ejecución el hilo cuyo tiempo de servicio sea menor. El promedio de tiempo de espera disminuye. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Trabajo más corto primero SJN Suponga que se conocen de antemano los tiempos de servicio de los hilos. El planificador escoge para ejecución el hilo cuyo tiempo de servicio sea menor. El promedio de tiempo de espera disminuye. Puede condenar a hilos con servicios largos si en la lista de espera hay constantemente hilos con servicios cortos. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Planificación con prioridad Priority Scheduling En este tipo de clasificación los hilos son asignados a la CPU de acuerdo a una prioridad externa. Esta se determina, por ejemplo, con la prioridad del usuario, la naturaleza del hilo o cualquier otro criterio. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Planificación con prioridad Priority Scheduling En este tipo de clasificación los hilos son asignados a la CPU de acuerdo a una prioridad externa. Esta se determina, por ejemplo, con la prioridad del usuario, la naturaleza del hilo o cualquier otro criterio. Prioridades estáticas La prioridad es la misma durante la existencia del hilo. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Planificación con prioridad Priority Scheduling En este tipo de clasificación los hilos son asignados a la CPU de acuerdo a una prioridad externa. Esta se determina, por ejemplo, con la prioridad del usuario, la naturaleza del hilo o cualquier otro criterio. Prioridades estáticas La prioridad es la misma durante la existencia del hilo. Prioridades dinámicas La prioridad puede variar durante la existencia del hilo. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Planificación de Tiempo-Lı́mite Deadline Scheduler Los sistemas de tiempo real fuertes (hard real-time systems) se caracterizan por poseer hilos que deben completar su ejecución antes de un tiempo lı́mite. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Planificación de Tiempo-Lı́mite Deadline Scheduler Los sistemas de tiempo real fuertes (hard real-time systems) se caracterizan por poseer hilos que deben completar su ejecución antes de un tiempo lı́mite. La forma de medir el comportamiento es si el sistema puede asegurar cumplir los lı́mites de esos hilos. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Planificación de Tiempo-Lı́mite Deadline Scheduler Los sistemas de tiempo real fuertes (hard real-time systems) se caracterizan por poseer hilos que deben completar su ejecución antes de un tiempo lı́mite. La forma de medir el comportamiento es si el sistema puede asegurar cumplir los lı́mites de esos hilos. Se debe conocer de antemano los tiempos de servicios de los hilos. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación no apropiativa Primero en llegar primero en ser servido Trabajo más corto primero Planificación con prioridad Planificación de Tiempo-Lı́mite Planificación de Tiempo-Lı́mite Deadline Scheduler Los sistemas de tiempo real fuertes (hard real-time systems) se caracterizan por poseer hilos que deben completar su ejecución antes de un tiempo lı́mite. La forma de medir el comportamiento es si el sistema puede asegurar cumplir los lı́mites de esos hilos. Se debe conocer de antemano los tiempos de servicios de los hilos. Un hilo puede ser admitido en la lista de espera si y solo si el scheduler garantiza su ejecución junto con los demás hilos en espera. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación apropiativa Round Robin Colas de multiples niveles Planificación apropiativa Preemptive En estas estrategias los algoritmos asignan la CPU a los hilos con mayor prioridad. Cada vez que sea necesario se obliga al hilo que corre a realizar la operación yield cuando se necesite. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación apropiativa Round Robin Colas de multiples niveles Planificación apropiativa Preemptive En estas estrategias los algoritmos asignan la CPU a los hilos con mayor prioridad. Cada vez que sea necesario se obliga al hilo que corre a realizar la operación yield cuando se necesite. Round Robin Multiple-Level Queues Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación apropiativa Round Robin Colas de multiples niveles Round Robin RR Es la estrategia más usada en los sistemas de cómputo. Su objetivo es distribuir el uso de la CPU equitativamente a todos los procesos/hilos. Cada uno con un intervalo de 1/n por cada unidad de tiempo. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación apropiativa Round Robin Colas de multiples niveles Round Robin RR Es la estrategia más usada en los sistemas de cómputo. Su objetivo es distribuir el uso de la CPU equitativamente a todos los procesos/hilos. Cada uno con un intervalo de 1/n por cada unidad de tiempo. Cuando un hilo termina sin completar su quantum, al nuevo hilo se le asigna un nuevo quantum entero. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación apropiativa Round Robin Colas de multiples niveles Round Robin RR Es la estrategia más usada en los sistemas de cómputo. Su objetivo es distribuir el uso de la CPU equitativamente a todos los procesos/hilos. Cada uno con un intervalo de 1/n por cada unidad de tiempo. Cuando un hilo termina sin completar su quantum, al nuevo hilo se le asigna un nuevo quantum entero. Cuando llega un hilo se pone en la lista de espera pero su posición exacta depende de las opciones. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación apropiativa Round Robin Colas de multiples niveles Round Robin RR Es la estrategia más usada en los sistemas de cómputo. Su objetivo es distribuir el uso de la CPU equitativamente a todos los procesos/hilos. Cada uno con un intervalo de 1/n por cada unidad de tiempo. Cuando un hilo termina sin completar su quantum, al nuevo hilo se le asigna un nuevo quantum entero. Cuando llega un hilo se pone en la lista de espera pero su posición exacta depende de las opciones. Si se posee una lista doblemente enlazada el nuevo procesose coloca justo antes del ultimo proceso ejecutado. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación apropiativa Round Robin Colas de multiples niveles Round Robin RR Es la estrategia más usada en los sistemas de cómputo. Su objetivo es distribuir el uso de la CPU equitativamente a todos los procesos/hilos. Cada uno con un intervalo de 1/n por cada unidad de tiempo. Cuando un hilo termina sin completar su quantum, al nuevo hilo se le asigna un nuevo quantum entero. Cuando llega un hilo se pone en la lista de espera pero su posición exacta depende de las opciones. Si se posee una lista doblemente enlazada el nuevo procesose coloca justo antes del ultimo proceso ejecutado. Se reinicia el reloj cada vez que asigna un nuevo hilo. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación apropiativa Round Robin Colas de multiples niveles Colas de multiples niveles Multiple-Level Queues Esta es una extensión de la planificación por prioridad. Existen diferentes “piscinas” de procesos con la misma prioridad. El planificador asigna procesos de acuerdo a una estrategia y hilos en los procesos de acuerdo a otra estrategia. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación apropiativa Round Robin Colas de multiples niveles Colas de multiples niveles Multiple-Level Queues Esta es una extensión de la planificación por prioridad. Existen diferentes “piscinas” de procesos con la misma prioridad. El planificador asigna procesos de acuerdo a una estrategia y hilos en los procesos de acuerdo a otra estrategia. Suponga una lista dividida en sublistas. Se ejecuta en orden ascendente para que los procesos más prioritarios se ejecuten antes que los demás. Andrés Felipe Barco Santa Planificación Introducción Scheduling Mechanisms Selección de Estrategia Estrategias No-apropiativas Estrategias Apropiativas Planificación apropiativa Round Robin Colas de multiples niveles Fin de la Clase Nos vemos en la próxima!!! Andrés Felipe Barco Santa Planificación