ELEMENTO DE
DISEÑO
En la planificación de un
multiprocesador se deben considerar tres puntos
interrelacionados .
v
LA ASIGNACIÓN
DE PROCESOS A LOS PROCESADORES.
v
EL USO DE MULTIPROGRAMACION EN LOS PROCESADORES
INDIVIDUALES.
v
LA EXPEDICIÓN REAL DE LOS PROCESOS.
Asignación de Procesos a los
Procesadores:
La
asiganción puede ser ESTATICA
o DINAMICA.
Si se asigna un proceso a un procesador de forma permanente ,desde su activación hasta su terminación, entonces debe mantenerse una cola a corto plazo dedicada para cada procesador .Una ventaja de este método es que puede existir una sobrecarga menor en la función de planificación por que la asignación al procesador se realiza una sola vez y para siempre
Una desventaja de la asignación estática es que
un procesador puede estar desocupado,
con cola vacía, mientras que otro procesador tiene trabajos pendientes. Para
prevenir esta situación, se puede usar una cola común. Todos los procesos van
a una cola global y son ejecutados en cualquier
procesador que este disponible. De este modo, durante la vida de un proceso,
este se puede ejecutar en diferentes procesadores en momentos diferentes y la
información de contexto de todos los procesos se encuentra disponible para
todos los procesadores y, por lo tanto el coste de la planificación de un
proceso será independiente de la identidad del procesador en el que fue
planificado.
La forma de asignar los procesos a los procesadores
puede ser por medio de dos métodos;
Arquitectura
maestro / esclavo y arquitectura
simétricas:
El maestro
es el responsable de la planificación de trabajos .
Una vez que un proceso esta activo , si el esclavo
necesita un servidor (por ejemplo, una llamada para realizar una operación de
E/S),debe enviar una solicitud al maestro y esperara que el servicio se lleve a
cabo. Esta solución es bastante simple y exige pequeñas mejoras sobre el
sistema operativo multiprogramado del monoprocesador.
Las
desventajas de esta solución son dos:
1)
Un fallo en el maestro hace
caer todo el sistema.
2)
El maestro puede llegar a ser
un cuello de botella del rendimiento.
En
una arquitectura simétrica, el sistema operativo puede ejecutarse en cualquier
procesador y cada procesador se auto planifica con el conjunto de procesos
disponibles. Esta solución complica el sistema operativo ya que debe asegurarse
que dos procesadores no seleccionen el mismo proceso y que los procesos no se
pierdan, de algún modo, en el camino desde la cola .
Cuando cada proceso se asigna estáticamente a un
procesador durante todo su ciclo de vida, surge una nueva cuestión ¿Puede
estar multiprogramado dicho procesaror? En los multiprocesadores tradicionales
que tratan con sincronización de grano grueso e independiente, esta claro que
cada procesador individidual debería ser capaz de alternar entre varios
procesos para conseguir una alta utilización, y por lo tanto, un mejor
rendimiento sin embargo, cuando se trabaja con aplicaciones de grano medio
ejecutando en muchos procesadores la situación es menos clara.
Cuando
hay varios procesares disponibles, no resulta tan importante que cada procesador
este ocupado al máximo. En su lugar, se
debe tratar de obtener el mejor rendimiento en promedio para las aplicaciones.
Una aplicación que conste de varios hilos puede rendir poco a menos que todos
sus hilos estén disponibles para ejecutarlo simultáneamente.
El ultimo punto del diseño
relacionado con la planificación de multiprocesadores es la selección real del
proceso a ejecutar se ha visto que en un sistema monoprocesador multiprogramado,
el uso de prioridades o algoritmos de planificación sofisticados basados en la
utilización anterior pueden mejorar el
rendimiento sobre la simple estrategia FIFO.
Cuando hablamos de multiprocesadores, estas
complejidades innecesarias o incluso contraproducentes y una estrategia sencilla
puede se mas efectiva con una sobrecarga menor.