Las disciplinas
de planificación pueden ser:• Expropiativas• No expropiativas
Se
denomina planificador al software del sistema operativo encargado de asignar
los recursos de un sistema entre los procesos que los solicitan. Siempre que
haya tomar una decisión, el planificador debe decidir cuál de los procesos que
compiten por la posesión de un determinado recursos lo recibirá.
FIFO: First In First Out
Mecanismo
de scheduling en el cual los procesos se ordenan en una fila, en la cual se
ejecutan cada uno de los procesos hasta su finalización secuencialmente. Es
tremendamente ineficiente. Cuando se tiene que elegir a qué proceso asignar la
CPU se escoge al que llevara más tiempo listo. El proceso se mantiene en la CPU
hasta que se bloquea voluntariamente.
El
sistema debe reservar el tamaño de memoria necesario para acoger todos los
datos, sea cual sea el número de elementos usados, lo que en algunas
aplicaciones supone un despilfarro de la memoria.
Tiene
dos punteros:
1.
Puntero de Lectura/Registro de Dirección de Lectura
2.
Puntero de Escritura/Registro de Dirección de Escritura
SJF
Al
igual que en el algoritmo FIFO las ráfagas se ejecutan sin interrupción, por
tanto, sólo es útil para entornos batch. Su característica es que cuando se
activa el planificador, éste elige la ráfaga de menor duración. Es decir,
introduce una noción de prioridad entre ráfagas.
Hay
que recordar que en los entornos batch se pueden hacer estimaciones del tiempo
de ejecución de los procesos. La ventaja que presenta este algoritmo sobre el
algoritmo FIFO es que minimiza el tiempo de finalización promedio, como puede
verse en el siguiente ejemplo:
Supongamos
que en un momento dado existen tres ráfagas listos R1, R2 y R3, sus tiempos de
ejecución respectivos son 24, 3 y 3 ms. El proceso al que pertenece la ráfaga
R1 es la que lleva más tiempo ejecutable, seguido del proceso al que pertenece
R2 y del de R3.
Rr
Cada
proceso tiene asignado un intervalo de tiempo de ejecución, llamado quantum o
cuanto. Si el proceso agota su quantum de tiempo, se elige a otro proceso para
ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su quantum
también se alterna el uso de la CPU.
El
round robín es muy fácil de implementar. Todo lo que necesita el planificador
es mantener una lista de los procesos listos.
QuevesMultilevel
Un
algoritmo de planificación multinivel particiona la cola de listos en colas
separadas. Se asignan en forma permanente los trabajos a una cola,
generalmente, basándose en alguna propiedad del mismo (requerimientos de
memoria, tipo de trabajo), teniendo cada cola su propio algoritmo. Por ejemplo,
la cola interactiva podría planificarse usando RR y la batch FIFO.
Ningún
trabajo en una cola de baja prioridad puede ejecutarse si las colas con mayor
prioridad no están vacías. Si algún trabajo entra en una cola de mayor
prioridad, el trabajo de otras colas es interrumpido.
MultiLevel Feedback Queves
En
colas multinivel realimentadas los trabajos pueden moverse dentro de distintas
colas. La idea es separar procesos con distintos tipos de interrupciones de la
CPU. Si un trabajo consume mucho tiempo de CPU, será movido a una cola con
menor prioridad.
En
forma similar, si un proceso espera demasiado tiempo en una cola de baja
prioridad, lo moveremos a una cola de mayor prioridad.
En
general un planificador de este tipo esta definido por los siguientes
parámetros:
1.
El número de colas.
2.
El tipo de algoritmo de planificación de cada cola.
3.
Un método de determinación de cuando mover un trabajo a una cola de mayor
prioridad.
4.
Un método de determinación de cuando mover un trabajo a una cola de menor
prioridad.
5.
Un método de determinación de a qué cola se enviará un trabajo cuando necesita
servicio.