Niveles de Planificación La asignación de procesadores a los procesos es un problema complejo manejado por el sistema operativo El problema de cuando asignar la CPU y a que procesos se conoce como planificación de la CPU Hay tres niveles importante de planificación: Planificación de alto nivel Planificación de nivel intermedio Planificación de bajo nivel son muchas las políticas de planificación que se han empleado en los sistemas operativos y los mecanismos de planificación con los que se han implantado. 1
Objetivos de la Planificación Una disciplina de planificación debe responder a varios objetivos tales como: Ser justa Elevar al máximo la producción o rendimiento Aumentar al máximo el número de usuarios interactivos que reciben respuesta en tiempos aceptables Ser predecible Reducir al mínimo el gasto extra Equilibrar el uso de los recursos Lograr un equilibrio entre la respuesta y el aprovechamiento de los recursos Evitar el aplazamiento indefinido Imponer prioridades Dar preferencia a los procesos que ocupan recursos decisivos Degradarse paulatinamente con las cargas pesadas Muchos de los objetivos citados están en conflicto uno con otros, es por ello que la planificación es un problema complejo 2
Criterios de Planificación Los algoritmos de planificación tienen diferentes propiedades y pueden favorecer una clase de procesos sobre otros. Para la comparación de los diferentes algoritmos de planificación se consideran las siguientes características: Utilización de la CPU Rendimiento (Throughput) Tiempo de ejecución (Turnaround Time) Tiempo de espera Tiempo de respuesta En la mayoría de los casos se busca maximizar los valores promedio de: utilización de la CPU rendimiento y minimizar los valores promedio del tiempo de: ejecución espera respuesta Sin embargo, hay circunstancias en que los valores a maximizar o minimizar varían. 3
Planificación Apropiativa y no Apropiativa Cuando un proceso ha recibido la CPU, las circunstancias bajo las cuales la dejará depende de si la política de planificación es: apropiativa no apropiativa Características de la planificación apropiativa: útil para sistemas donde algunos procesos requieren atención rápida tienen el costo del cambio de contexto Característica de la planificación no apropiativa: los trabajos largos retrasan a los cortos tratamiento más justo para todos los procesos los trabajos nuevos de alta prioridad no pueden desplazar a los trabajos en espera 4
Prioridades El esquema de prioridades de los procesos puede tener diversas formas Las prioridades pueden ser: asignadas en forma automática por el sistema o externamente ganadas o compradas estáticas o dinámicas asignadas en forma racional o de manera arbitraria 5
Algoritmos de planificación First-Come, First-Served (FIFO) Los procesos se despachan en el orden de llegada a la cola de procesos listos Es una disciplina de planificación no apropiativa No es útil para la planificación de usuarios interactivos Ocasiona un tiempo de espera promedio que es a menudo bastante alto En un esquema estático, los trabajos largos hacen esperar a los cortos, y los trabajos sin importancia hacen esperar a los importantes. En un esquema dinámico puede suceder que un proceso grande del tipo CPU-bound haga esperar a muchos procesos del tipo I/O-bound. 6
Algoritmos de Planificación Shortest Job First (Primero el trabajo más corto) Asocia con cada proceso la longitud de la última ráfaga de CPU La CPU es asignada al proceso que tiene la próxima ráfaga de CPU más corta SJF da el mínimo tiempo de espera promedio para un conjunto de procesos La dificultad en el algoritmo SJF es conocer la longitud de la próxima ráfaga de CPU de un proceso SJF es usado frecuentemente en la planificación a largo plazo No puede ser implementado como algoritmo de planificación de corto plazo. Un enfoque es tratar de aproximar la planificación SJF calculando una aproximación de la longitud de la próxima ráfaga de CPU SJF puede ser apropiativo o no apropiativo La planificación SJF apropiativa suele llamarse tiempo restante más corto primero 7
Algoritmos de planificación Por Prioridad A cada proceso se le asocia una prioridad y la CPU es asignada al proceso de mayor prioridad SJF es un caso especial del algoritmo de planificación por prioridad Las prioridades pueden ser definidas internamente o externamente La planificación por prioridad puede ser apropiativa o no apropiativa Tienen el problema de que pueden causar el bloqueo indefinido o inanición de algunos procesos Una solución al problema anterior es aplicar la técnica de envejecimiento 8
Algoritmos de planificación Round-Robin Diseñado especialmente para sistemas de tiempo compartido La CPU se asigna a los procesos de la ready queue por una pequeña unidad de tiempo llamada quantum Cuando un proceso recibe la CPU pueden suceder dos cosas: el proceso tiene una ráfaga de CPU menor que el quantum el proceso tiene una ráfaga de CPU mayor que el quantum El tiempo de espera promedio es frecuentemente bastante largo La perfomance del algoritmo depende principalmente del tamaño del quantum y del efecto del cambio de contexto El tiempo de ejecución también depende del tamaño del quantum Como regla general se sostiene que el 80% de las ráfagas de CPU deben tener una duración menor al valor del quantum 9
Algoritmos de planificación Múltiples niveles de colas Particiona la ready queue en varias colas separadas Los procesos son permanentemente asignados a alguna cola en base a alguna propiedad de los mismos. Cada cola tiene su propio algoritmo de planificación También debe existir planificación entre las colas, esta es comúnmente apropiativa basada en prioridades fijas. Existe también la posibilidad de asignar una fracción de tiempo a cada cola 10
Algoritmos de planificación Múltiples niveles de colas con retroalimentación Es el algoritmo de planificación más general y el más complejo A diferencia de la planificación con múltiples niveles de colas, donde los procesos permanecen siempre en la cola asignada, aquí se permite a los procesos moverse entre las colas La idea es separar los procesos en función de la duración de sus ráfagas de CPU Se utiliza la técnica de envejecimiento para evitar la inanición de procesos Este algoritmo de planificación se define por los siguientes parámetros: Número de colas Algoritmo de planificación para cada cola Método utilizado para mover un proceso a una cola de mayor prioridad Método utilizado para determinar cuando mover un proceso a una cola de menor prioridad Método utilizado para determinar a que cola se asignará un proceso cuando ingresa al sistema 11
Evaluación de algoritmos La selección de un algoritmo de planificación para un particular sistema puede ser una tarea difícil El primer problema es definir el criterio a ser usado en la selección de un algoritmo El criterio es definido frecuentemente en términos de: Utilización de la CPU Tiempo de respuesta ó Utilización Para seleccionar un algoritmo debe primero definirse la importancia relativa de estas mediciones El criterio elegido puede incluir varias mediciones como: Maximizar la utilización de la CPU bajo la restricción de que el máximo tiempo de respuesta es 1 segundo Una vez definido el criterio de selección, podemos evaluar los algoritmos bajo consideración Hay diferentes métodos de evaluación Modelado determinístico Modelado con colas Simulaciones Implantación 12