Despachador
Módulo
del SO que da el control de la CPU al proceso seleccionado por el planificador
de corto plazo
Esto
implica
–
Cambio de contexto: Salvar registros del procesador en PCB del proceso
saliente. Cargar los registros con los datos del PCB del proceso entrante.
–
Cambiar el bit de modo a usuario.
–
Saltar a la instrucción adecuada que había quedado el proceso que se asignó a
la CPU (registro program counter).
La
latencia del despachador debe ser la menor posible
El
planificador que corre en el despachador es el responsable de seleccionar el
próximo proceso a ejecutarse.
Tipos de planificador
Largo plazo
– Determina qué programas son
admitidos al sistema para ejecución
– Controla el grado de
multiprogramación
– Mientras más procesos son
admitidos, cada uno tendrá un porcentaje menor de uso del procesador
Mediano plazo
– Determina si agregar más programas
a los que ya están parcialmente o totalmente en memoria principal
Corto plazo
– Determina qué proceso es ejecutado
en el procesador
– Se ejecuta frecuentemente debe ser
eficiente
– Evento típicos que desencadena al
despachador: Interrupciones del reloj
(quantum), interrupciones de I/O,
llamados al sistemas, señales, etc.
Clases de procesos
Existen distintas políticas de
planificación que serán exitosas según la clase de procesos que ejecuten.
En general, los procesos tienden a
ser o más intensivos en el uso de procesador, o más intensos en el uso de
operaciones de E/S.
Los procesos tienen ciclos de
ráfagas de ejecución (CPU-burst) y ciclos de ráfagas de espera de operaciones
de E/S (I/O burst)
– Procesos CPU-bound: Los procesos
que contienen un alto uso de procesador son llamados CPU-bound o compute-bound.
– Procesos I/O-bound: Los procesos
que realizan muchos accesos a operaciones de E/S son llamados I/O-bound.
La prioridad que tenga un proceso
frente a los demás para acceder al recurso será inversamente proporcional al
uso que haga del recurso.
Esquemas de planificación
Los momentos en que el planificador
es invocado son:
1. Cuando un proceso se bloquea en
una operación de E/S o espera a que termine un hijo, etc.
2. Cuando un proceso cambia del
estado ejecutando al estado pronto. Por ejemplo al ocurrir una interrupción.
3. Cuando ocurre una interrupción de
E/S y un proceso pasa del estadobloqueado a pronto.
4. Cuando se crea un proceso
5. Cuando un proceso finaliza su
ejecución.
Cuando ocurre 1 o 5, el planificador
es invocado debido a que el proceso en ejecución libera el procesador.
Si el planificador es invocado
cuando ocurre 2, 3 o 4, se dice que este es expropiativo (preemptive), ya que
puede quitar el procesador al proceso que estaba en ejecución.
Sistemas operativos con
planificadores no expropiativos (nonpreemptive) son los que asignan el recurso
procesador a un proceso y hasta que este no lo libere, ya sea porque finaliza
su ejecución o se bloquea, no se vuelve a ejecutar el planificador.
Sistemas operativos con
planificadores expropiativos (preemptive) son que los que pueden expropiar el
recurso procesador a un proceso cuando otro proceso entra en estado pronto (ya
sea porque es nuevo o porque se desbloqueó) o porque se le impone un límite de
tiempo para ejecutar.
Los esquemas de planificación son
útiles según el ambiente donde seanvaplicados:
– Sistemas por lotes: Como no existe
interacción con usuarios, los planificadores no expropiativos son ideales.
– Sistemas interactivos: Debido a
que existen procesos de usuarios ejecutando a la vez, los planificadores
expropiativos son ideales para mantener un buen tiempo de respuesta para los
usuarios.
– Sistemas de tiempo real: No es
necesario un planificador expropiativo ya que los procesos puede que no
ejecuten por un buen tiempo, pero cuando lo hacen es por un período muy corto.
Criterios de planificación
Los algoritmos de planificación
tendrán distintas propiedades y favorecerán cierta clase de procesos.
Es necesario definir criterios para
poder evaluar los algoritmos de planificación:
– Utilización de CPU (CPU
utilization): Es el porcentaje de uso (en cuanto a ejecución de tareas de
usuario o del sistema que son consideradas útiles) que tiene un procesador.
– Rendimiento (Throughput): Es el
número de procesos que ejecutaron completamente por unidad de tiempo (una hora
p.ej.).
– Tiempo de retorno (Turnaround
time): Es el intervalo de tiempo desde que un proceso es cargado hasta que este
finaliza su ejecución.
– Tiempo de espera (Waiting time):
Es la suma de los intervalos de tiempo que un proceso estuvo en la cola de
procesos listos (ready queue).
– Tiempo de respuesta (Response
time): Es el intervalo de tiempo desde que un proceso es cargado hasta que brinda
su primera respuesta. Es útil en sistemas interactivos.