Sus ventajas son:
v
La
distribución de carga es uniforme entre los procesadores, asegurando que
ninguno este ocioso mientras haya trabajo disponible.
v
No es
necesario un planificador centralizado. Cuando un procesador esta libre, la
rutina de planificación del sistema operativo se ejecuta en ese procesador para
seleccionar u8n nuevo hilo.
v
La
cola global puede organizarse y se puede acceder a ella por medio de los
esquemas basados en propiedades y los que tienen en cuenta el historial de
ejecución, o las solicitudes de procesos por adelantados.
Existen tres
versiones diferentes del reparto de carga:
Ø
Primero
en llegar / Primero en servirse ( FCFS ): Cuando llega un trabajo, cada uno de sus hilos se
sitúa consecutivamente al final de la cola compartida. Cuando un procesador
pasa a estar ocioso, toma el siguiente hilo listo y lo ejecuta hasta que
finaliza o se bloquea.
Ø
Primero el de menor número de hilos: La cola de listos
compartida se organiza como una cola de prioridades, en la que la prioridad más
alta se asigna a los hilos de los trabajos con el menor número de hilos sin
planificar. Si los trabajos de la misma prioridad se ordenan según el orden de
llegada. Como con FCFS, un hilo planificado se ejecuta hasta que finaliza o se
bloquea.
Ø
Primero
el de menor número de hilos preferentes: La mayor prioridad se da a los trabajos con el
menor número de hilos sin terminar. La llegada de un trabajo con un número de
hilos menor que un trabajo en ejecución expulsará los hilos del trabajo
planificado.
Por medio de los modelos de simulación, sobre un amplio rango de características de los trabajos, la FCFS es superior a las otras dos políticas. Además se halló que algunas formas de planificación por grupos, que se trataran a continuación, en general son superiores al reparto de carga.
Sus
desventajas son:
ð
La
cola central ocupa una región
de memoria a la que se debe acceder con exclusión mutua. Ya que si
muchos procesadores buscan trabajo al mismo tiempo puede convertirse en un
cuello de botella. Cuando el numero de procesadores es pequeño, es poco
probable que este problema se produzca. Sin embargo, cuando el multiprocesador
está formado por docenas o incluso
cientos de procesadores, la posibilidad de un cuello de botella es real.
ð
Es
improbable que los hilos expulsados reanuden su ejecución en el mismo
procesador, si cada procesador dispone de un caché local, el uso del caché será
menos eficiente.
ð
Si
todos los hilos son tratados como una reserva común de hilos, es improbable que
todos los hilos de un programa consigan acceder a los procesadores al mismo
tiempo. Si se exige un alto grado de coordinación entre los hilos de un
programa, los intercambios de procesos pueden comprometer seriamente el
rendimiento.
A pesar de sus desventajas, éste es uno de los
esquemas usados más comúnmente en los multiprocesadores actuales.
El Sistema Operativo Mach,
emplea una variante en la técnica de reparto de carga. El sistema operativo
mantiene una cola de ejecución local para cada procesador y una cola de ejecución
global compartida.
La cola de ejecución local la emplean los hilos
que han sido asociados temporalmente a un procesador específico.
Un procesador examina en primer lugar la cola de
ejecución local, para dar preferencia absoluta a los hilos asociados sobre los
no asociados.
Como ejemplo del uso de los hilos, uno o más
procesadores podrían dedicarse a ejecutar procesos que forman parte del sistema
operativo.
Otro ejemplo es que los hilos de una aplicación
particular podrían distribuirse entre
una serie de procesadores: con el software adicional apropiado, esta estrategia
ofrece soporte a la planificación por grupos, que se trata a continuación.