Planificación Round Robin (RR).
Los procesos son despachados en FIFO, pero, se les otorga una cantidad
limitada de tiempo de CPU llamada división de tiempo (time - slice) o
cuanto (quantum). Si un proceso no termina antes de que se termine su
tiempo de CPU, el CPU es apropiado y asignado al siguiente proceso en
espera. El proceso apropiado se coloca al final de la lista de listos.
Planeación round robin.
El esquema Round robin
es efectivo en un ambiente de tiempo compartido en el cual el sistema
necesita garantizar un tiempo de respuesta razonable para los usuarios
interactivos. La sobre carga de
la apropiación se mantiene baja mediante eficientes mecanismos de
cambio de contexto y proporcionado suficiente memoria para que los
procesos residan en ella al mismo tiempo.
Existe una variante de este esquema llamada selfish round robin (SRR).
En este esquema los procesos que entran al sistema se colocan primero
en una lista de espera hasta que su prioridad alcanza el nivel de
proceso para la lista de activos. Mientras un proceso está en la lista
de espera, su prioridad aumenta en una relación a; cuando un proceso entra a la lista de activos su prioridad se incrementa en una relación b.
Tamaño del cuanto.
La determinación del tamaño del cuanto es decisiva para la operación efectiva de
un sistema computacional. ¿Debe ser pequeño o grande el cuanto? ¿Debe
ser fijo o variable? ¿Debe ser el mismo para todos los usuarios, o debe
ser diferente para cada grupo de usuarios?.
Cuando
se tiene un cuanto grande cada proceso pude recibir todo el tiempo que
necesita para su terminación, de manera que el esquema round robin se
convierte en un FIFO. Cuando el cuanto es pequeño,
la sobrecarga por el intercambio de contexto se convierte en un factor
dominante y el rendimiento del sistema se degrada.
¿Cuál es el cuanto óptimo ? Es claro que cambia de un sistema a otro y que varia de acuerdo a la carga del sistema.
SCHED_RR: Planificación circular (Round Robin).
SCHED_RR es una mejora simple de SCHED_FIFO. Todo lo descrito arriba para SCHED_FIFO se aplica también a SCHED_RR, excepto que a cada proceso sólo se le permite ejecutarse durante un cuanto de tiempo máximo. Si un proceso SCHED_RR
ha estado ejecutándose durante un periodo de tiempo igual o mayor que
el cuanto de tiempo, será puesto al final de la lista para su prioridad.
Un proceso SCHED_RR que ha sido apropiado por un proceso de más
alta prioridad y subsecuentemente reanuda su ejecución como un proceso
en ejecución, completará la porción no expirada de su cuanto de tiempo
de asignación en rueda. La cantidad del cuanto de tiempo puede ser
obtenida con sched_rr_get_interval.
Planificación de Asignación en Rueda (RR: Round Robin)
Los procesos se despachan en “FIFO” y disponen de una cantidad limitada de tiempo de cpu, llamada “división de tiempo” o “cuanto”.
Si un proceso no termina antes de expirar su tiempo de cpu ocurren las siguientes acciones:
- La cpu es apropiada.
- La cpu es otorgada al siguiente proceso en espera.
- El proceso apropiado es situado al final de la lista de listos.
Es efectiva en ambientes de tiempo compartido.
La sobrecarga de la
apropiación se mantiene baja mediante mecanismos eficientes de
intercambio de contexto y con suficiente memoria principal para los
procesos. Tamaño del Cuanto o Quantum
La determinación del tamaño del cuanto es decisiva para la operación efectiva de un sistema computacional [7, Deitel].
Los interrogantes son: ¿cuanto pequeño o grande?, ¿cuanto fijo o variable? y ¿cuanto igual para todos los procesos de usuarios o determinado por separado para cada uno de ellos?.
Si el cuanto se hace muy grande, cada proceso recibe todo el tiempo necesario para llegar a su terminación, por lo cual la asignación en rueda (“RR”) degenera en “FIFO”.
Si el cuanto se hace muy pequeño, la sobrecarga del intercambio de contexto se convierte en un factor dominante y el rendimiento del sistema se degrada, puesto que la mayor parte del tiempo de cpu se invierte en el intercambio del procesador (cambio de contexto) y los procesos de usuario disponen de muy poco tiempo de cpu.
El cuanto debe ser lo suficientemente grande como para permitir que la gran mayoría de las peticiones interactivas requieran de menos tiempo que la duración del cuanto, es decir que el tiempo transcurrido desde el otorgamiento de la cpu a un proceso hasta que genera una petición de Entrada / Salida debe ser menor que el cuanto establecido, de esta forma, ocurrida la petición la cpu pasa a otro proceso y como el cuanto es mayor que el tiempo transcurrido hasta la petición de Entrada / Salida, los procesos trabajan al máximo de velocidad, se minimiza la sobrecarga de apropiación y se maximiza la utilización de la
Entrada / Salida.
El cuanto óptimo varía de un sistema a otro y con la carga, siendo un valor de referencia 100 mseg (cien milisegundos).
No hay comentarios:
Publicar un comentario