2. CONTENIDOS
2.2 PLANIFICACIÓN DE LA CPU
Conceptos Básicos
Criterios de planificación
Algoritmos de planificación
Planificación de sistemas multiprocesador
Evaluación de algoritmos
3. • Los son la base de los
.
• A través de la conmutación de la CPU se tiene una computadora más
productiva.
• Con la multiprogramación se tiene varios procesos en ejecución
continuamente.
• Todos los recursos del sistema se planifican antes de ser utilizados:
CPU principal recurso, por lo tanto requiere una correcta
planificación.
Conceptos Básicos
4. Ciclo de ráfagas de CPU y de E/S
• La ejecución de un proceso consta de un ciclo de ejecución en la
CPU; seguido de una espera de E/S.
• La ejecución de un proceso comienza con una ráfaga de CPU;
seguida de una ráfaga de E/S; etc.
5. Ciclo de ráfagas de CPU y de E/S
• La ráfaga final de CPU concluye con una solicitud al sistema para
terminar la ejecución.
• Las ráfagas de CPU varían de un proceso a otro y de una
computadora a otra (curva exponencial o hiperexponencial).
Histograma de duración de las ráfagas de CPU
6. Planificador de la CPU
• CPU inactiva!!! >> el SO debe seleccionar uno de los procesos (de la
cola de procesos preparados para ejecución).
• Pero ¿QUIÉN realiza la selección del proceso?.....
• Todos los procesos que se encuentran en la cola de procesos
preparados se ponen en fila esperando la oportunidad de ejecutarse
en la CPU.
• Los registros que se almacenan en las colas son por lo general
bloques de control de proceso (PCB) que describen los procesos en
cuestión.
7. Planificación apropiativa
• Se debe tomar decisiones sobre planificación de la CPU cuando:
1. Un proceso cambia del estado de ejecución al estado de espera (solicitud
E/S, invocación de wait)
2. Un proceso cambia del estado de ejecución al estado de preparado
(interrupción)
3. Un proceso cambia del estado de espera al estado preparado (se completo
operación E/S)
4. Un proceso termina
• Situaciones 1 y 4 Seleccionar un nuevo proceso para ejecución.
Esquema de planificación sin desalojo o cooperativo: El proceso se
mantiene en la CPU hasta que ésta es liberada por la terminación del proceso o
por la conmutación al estado de espera.
• Situaciones 2 y 3 Se puede planificar un nuevo proceso o no.
Esquema apropiativo: requiere HW especial – temporizador, coste asociado
con el acceso a los datos compartidos
8. Despachador
El despachador es el módulo que proporciona el control de la CPU a los
procesos seleccionados por el planificador a corto plazo; lo que implica:
• Cambio de contexto
• Cambio al modo usuario
• Salto a la posición correcta dentro del
programa de usuario para reiniciar dicho
programa
Característica:
• Debe ser lo más rápido posible
Latencia de despacho: Tiempo en que tarda el
despachador en detener un proceso e iniciar la
ejecución de otro.
9. Criterios de planificación
• Cuando se escoge un algoritmo se debe tomar en cuenta las propiedades de
cada algoritmo y que sea lo más equitativo posible.
• Para comparar los algoritmos se pueden tomar en cuenta los siguientes
criterios:
Utilización de la CPU: Mantener la CPU tan ocupada como se pueda.
Tasa de procesamiento: El número de procesos que se completan
por unidad de tiempo.
Tiempo de ejecución: Cuánto tarda en ejecutarse un proceso.
Intervalo: inicia la ejecución hasta que se completa.
Tiempo de espera: La suma de los periodos invertidos en esperar en
la cola de preparados. Algoritmo de planificación afecta sólo al período
de tiempo que un proceso espera en la cola de preparados.
Tiempo de respuesta: Tiempo que el proceso tarda en empezar a
responder (no el tiempo que tarda en enviar a la salida toda la
información de respuesta). Limitado por la velocidad del dispositivo de
salida.
10. Criterios de planificación
• De acuerdo a los criterios, el objetivo de un algoritmo de planificación
consiste en:
Maximizar:
La utilización de la CPU
La tasa de procesamiento
Minimizar:
Tiempo de ejecución
Tiempo de espera
Tiempo de respuesta
11. Algoritmos de planificación
La planificación tiene que ver con el problema de decidir a cuál de los procesos en la
cola de preparados/listos se le asignará la CPU.
Algoritmos de planificación más conocidos:
• Algoritmo de planificación FIFO (FCFS)
• Algoritmo de planificación SJF (Shortest-job-first)
• Algoritmo de Planificación Basado en Prioridades
• Algoritmo de Planificación por turno rotario (RR, Round Robin)
• Algoritmo de Planificación MLQ, de múltiples colas multinivel
12. Planificación FCFS - FIFO
• Algoritmo más simple: FCFS (First come, first server – Primero
en llegar, primero en ser servido) o FIFO (First input, first output
– Primero en llegar, primero en salir)
• Los procesos pasan a CPU en orden de llegada a cola de procesos
listos.
• Si el proceso en ejecución necesita E/S, se inserta al final de la
cola de procesos listos al regresar a ésta.
• Algoritmo no expulsivo.
• Fácil implementación con cola FIFO.
• Poco eficiente.
• Es un algoritmo cooperativo.
• Pueden sufrir un efecto convoy: en espera de que un proceso de
larga duración deje de usar la CPU.
15. • Planificación con selección del trabajo más corto, Shortest Job First.
• Asociar a cada proceso el tiempo de ráfaga de CPU.
• Seleccionar el proceso con menor ráfaga de CPU.
• En caso de empate, aplicar FIFO.
• Algoritmo no apropiativo y apropiativo (apropiativo primero el de
tiempo restante más corto).
• Dificultad: conocer la longitud de la siguiente solicitud de la CPU.
• En Planificación a largo Plazo podemos usar como longitud el límite
de tiempo del procesamiento que específica el usuario que presenta el
trabajo.
• SJF es óptimo, no puede implementarse a nivel de la planificación de
la CPU a corto plazo.
Planificación SJF
17. Planificación por prioridades
• Asociar a cada proceso una prioridad (número entero).
• Asignar la CPU al proceso más prioritario.
• En caso de tener la misma prioridad, aplicar FIFO.
• Asumiremos mayor prioridad con menor número entero.
• Algoritmo apropiativo o cooperativo.
• Las prioridades se pueden definir interna (límites de tiempo, requerimientos
de memoria, número de archivos abiertos) o externamente (importancia
proceso, cantidad de fondos, políticos).
• Un problema de este algoritmo es que puede sufrir el bloqueo indefinido o
inanición (dejar algunos procesos de prioridad baja esperando
indefinidamente por la CPU). Se puede solucionar a través de la técnica del
envejecimiento (aumentar la prioridad gradualmente de los procesos que
esperan en el sistema durante mucho tiempo).
19. Planificación por turnos
(Round Robin)
• Especialmente diseñado para sistemas de tiempo compartido.
• Cola circular de procesos listos.
• Asociar a cada proceso un tiempo de posesión de CPU (quantum q).
• Tras el quantum q el proceso en ejecución se expulsa de la CPU y se
pasa al final de la cola de procesos listos.
• Algoritmo expulsivo cada quantum q
de tiempo.
20. El rendimiento del algoritmo depende de q (cuanto de tiempo):
• q grande = planificación FIFO.
• q pequeño: Muchos cambios de contexto y sobrecarga en la gestión
de interrupciones de reloj. Se denomina compartición de procesador y
aparece en teoría como si cada uno de los n procesos tuviera su propio
procesador en ejecución.
•q debe ser grande respecto al tiempo de realizar un cambio de
contexto.
Generalmente, tiempo de retorno mayor que con SRTF pero mejor
tiempo de respuesta.
Planificación por turnos
(Round Robin)
23. Planificación mediante colas multinivel
• Procesos de
segundo plano
(por lotes)
Los procesos se
asignan a una cola
de acuerdo a las
propiedades del
proceso.
Cuando los procesos se pueden clasificar en grupos diferentes:
• Procesos de primer plano (procesos interactivos)
25. • Permite mover un proceso de una cola a otra cola.
• Se separa los procesos en base a las características de ráfagas de CPU de
cada proceso.
• El planificador mediante colas multinivel realimentadas se define de
acuerdo a los siguientes parámetros:
• Número de colas
• Algoritmo de planificación de cada cola.
• Método para determinar cuándo pasar un proceso a una cola de
prioridad más alta.
• Método usado para determinar cuándo pasar un proceso a una cola de
prioridad más baja.
• El método usado para determinar en qué cola se introducirá un
proceso cuando hay que darle servicio.
Colas multinivel con realimentación
27. Planificación de sistemas multiprocesador
• Cuando hay múltiples CPU, se puede compartir la carga.
• El problema de la planificación se hace más complejo.
MÉTODOS DE PLANIFICACIÓN
• Algoritmo de planificación complejo.
• Sistema heterogéneo:
o Cada procesador tiene su cola y algoritmo de planificación.
o Los procesos han de ejecutarse en un procesador
determinado.
• Sistema homogéneo:
o Cola común de procesos listos.
28. Evalución de algoritmos
¿Cómo seleccionar un algoritmo de planificación de la CPU para un
sistema en particular?
1) Modelado determinista: evaluación analítica
• Toma una carga de trabajo concreta y define el rendimiento de cada
algoritmo para dicha carga de trabajo.
• Es simple y rápido.
• Proporciona números exactos para comparar los algoritmos.
2) Modelos de colas
• Útil para comparar los distintos algoritmos de planificación.
• A través del conocimiento de las tasas de llegada y del tiempo de
servicio; se puede calcular la utilización, la longitud media de las colas, el
tiempo medio de espera Análisis de redes de colas.
• Fórmula de Little: n = λ x W
29. Evalución de algoritmos
3) Simulaciones:
• Requiere programar un modelo del sistema informático.
• Tiene una variable que representa una señal de reloj, cuando se incrementa el
simulador modifica el estado del sistema para reflejar actividades de los
dispositivos, procesos y planificador.
• A medida que se ejecuta la simulación, las estadísticas que indican el
rendimiento del algoritmo se recopilan y se presentan en la salida.
• Una simulación detallada proporciona resultados más precisos, pero requiere
más tiempo de cálculo.
4) Implementación:
• Se debe codificar el algoritmo de planificación, se lo debe incluir en el SO y
ver como funciona.
• Se realiza una evaluación bajo condiciones de operación real.
• Dificultad principal: alto costo y el entorno en el que se use el algoritmo.