PLANIFICADOR PROCESOS
El planificador de procesos (process scheduler, en inglés) es la
parte del sistema operativo que se encarga de seleccionar a qué proceso
se asigna el recurso procesador y durante cuánto tiempo.
El planificador de procesos tiene como funciones principales:
- Llevar el control del estado de cada proceso.
- Decidir qué proceso usará el procesador y durante cuanto tiempo, para ello empleará un cierto criterio en base al cual tomará las decisiones. Si implementa multiprogramación, deberá emplear un criterio que evite que un proceso monopolice el procesador.
- Asignar el procesador al proceso, restableciendo el contexto de la ejecución del proceso por donde fuere. El contexto de la ejecución se encuentra almacenado en el PCB del proceso asignado.
- Retirar el procesador al proceso, salvando el contexto de la ejecución del proceso, para poder restablecerlo posteriormente una vez que vuelva a ser asignado. El contexto de la ejecución se almacenará en el PCB del proceso retirado.
El planificador de procesos es software, por tanto, requiere emplear el recurso procesador para ejecutar su código.
Para la siguiente configuración de procesos:
- Proceso Pa: Llega en el instante de tiempo 0. Realiza una llamada al sistema bloqueante cada 1 unidad de tiempo, la operación bloqueante se resuelve tras 2 unidades de tiempo. Para finalizar su ejecución requiere 4 unidades de ejecución.
- Proceso Pb: Llega en el instante de tiempo 1. Para finalizar su ejecución requiere 4 unidades de ejecución.
- Suponga que el proceso Pa tiene mayor prioridad que el proceso Pb, por tanto, el planificador debe de dejar paso al proceso Pa siempre que éste esté en estado preparado.
La evolución de la asignación del procesador que realizaría el planificador es la siguiente:
Objetivos de la Planificación de procesos
La Planificación de procesos tiene como principales objetivos la
equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso y el
rendimiento.
- Equidad: Todos los procesos deben ser atendidos.
- Eficacia: El procesador debe estar ocupado el 100% del tiempo.
- Tiempo de respuesta: El tiempo empleado en dar respuesta a las solicitudes del usuario debe ser el menor posible.
- Tiempo de regreso: Reducir al mínimo el tiempo de espera de los resultados esperados por los usuarios por lotes.
- Rendimiento: Maximizar el número de tareas que se procesan por cada hora.
Algoritmos de Planificación
Primero en llegar primero en ser servido
Conocido como FCFS (First Come First Served).
Este algoritmo emplea una cola de procesos, asignando un lugar a cada
proceso por el orden de llegada. Cuando el proceso llega es puesto en su
lugar en la cola después del que llegó antes que él y se pone en estado
de listo. Cuando un proceso comienza a ejecutarse no se interrumpe su
ejecución hasta que termina de hacerlo.
Prioridad al más corto
Su nombre es SJF (Shortest Job First).
El proceso que se encuentra en ejecución cambiará de estado
voluntariamente, o sea, no tendrá un tiempo de ejecución determinado
para el proceso. A cada proceso se le asigna el tiempo que usará cuando
vuelva a estar en ejecución, y se irá ejecutando el que tenga un menor
tiempo asignado. Si se da el caso de que dos procesos tengan igual valor
en ese aspecto emplea el algoritmo FCFS.
Round Robin
A cada proceso se le asigna un tiempo determinado para su ejecución,
el mismo tiempo para todos. En caso de que un proceso no pueda ser
ejecutado completamente en ese tiempo se continuará su ejecución después
de que todos los procesos restantes sean ejecutados durante el tiempo
establecido. Este es un algoritmo basado en FCFS que trata la cola de
procesos que se encuentran en estado de listos como una cola circular.
Planificación por prioridad
En este tipo de planificación a cada proceso se le asigna una
prioridad siguiendo un criterio determinado, y de acuerdo con esa
prioridad será el orden en que se atienda cada proceso.
Planificación garantizada
Para realizar esta planificación el sistema tiene en cuenta el número
de usuarios que deben ser atendidos. Para un número "n" de usuarios se
asignará a cada uno un tiempo de ejecución igual a 1/n.
Planificación de Colas Múltiples
El nombre se deriva de MQS (Multilevel Queue Schedulling).
En este algoritmo la cola de procesos que se encuentran en estado de
listos es dividida en un número determinado de colas más pequeñas. Los
procesos son clasificados mediante un criterio para determinar en qué
cola será colocado cada uno cuando quede en estado de listo. Cada cola
puede manejar un algoritmo de planificación diferente a las demás.
Tiempos
En la Planificación de procesos se tiene en cuenta diferentes tiempos
que pueden ser calculados, como son el "Tiempo de espera medio", el
"Tiempo de retorno del proceso" y el "Tiempo de retorno medio".
Tiempo de espera medio
Es el promedio de tiempos en que los procesos están en estado de
listos. En algoritmos FCFS este tiempo suele ser bastante largo. En
algoritmos SJF para los procesos largos este tiempo suele ser muy
grande, pues se estarán ejecutando constantemente los procesos más
cortos y los más largos se encontrarán constantemente en espera, por lo
que pueden entrar en inanición.
En Planificación por prioridad los procesos de prioridad baja podrían no
ejecutarse nunca. Para dar solución a este problema el envejecimiento
de un programa eleva su prioridad.
Tiempo de retorno del proceso
Es el tiempo que transcurre desde la creación de un proceso hasta que termina la ejecución del programa que le dio lugar.
Tiempo de retorno medio
Es la suma de los tiempos de retorno de cada uno de los procesos dividida entre la cantidad de procesos.
No hay comentarios.:
Publicar un comentario