SISTEMAS MULTIPROCESADORES
Los sistemas multiprocesador pueden clasificarse en:
- Multiprocesador débilmente acoplado: consta de un conjunto de sistemas relativamente autónomos, donde cada procesador tiene su propia memoria principal y sus propios canales de E/S. Este tipo de configuración se aborda en el capítulo 12.
- Procesadores especializados: similares a los procesadores de E/S. Hay un procesador principal de propósito general que controla y ofrece servicios a los procesadores especializados. Los aspectos relativos a los procesadores de E/S se abordan en el capítulo 10.
- Multiprocesador fuertemente acoplado: consta de un conjunto de procesadores que comparten una memoria principal común y se encuentran bajo el control integrado de un S.O. Este capítulo estará dedicado a este tipo de procesadores.
GRANULARIDAD
Una buena forma de caracterizar los microprocesadores y situarlos en el contexto de otras arquitecturas es considerar la granularidad de la sincronización o frecuencia de sincronización entre los procesos de un sistema. Es posible distinguir cinco categorías de paralelismo que difieren en el grado de granularidad:
- Paralelismo independiente: no existe sincronización entre procesos. Su utiliza en sistemas de tiempo compartido. El multiprocesador ofrece el mismo servicio que un monoprocesador multiprogramado. Como hay más de un procesador disponible, el tiempo medio de respuesta de los usuarios será menor.
- Paralelismo de grano grueso y muy grueso: existe una sincronización entre procesos a un nivel muy burdo. Este tipo de situación se maneja fácilmente con un conjunto de procesos concurrentes ejecutando en monoprocesador multiprogramado y puede verse respaldado por un multiprocesador con algunos escasos cambios o ninguno en el SW del usuario.
- Paralelismo de grano medio: se han estudiado a las aplicaciones que pueden implementarse como un conjunto de hilos, en vez de en un solo proceso. Hará falta un alto grado de coordinación e interacción entre los hilos de la aplicación. Puesto que los diversos hilos de una aplicación interactúan en forma muy frecuente, las decisiones de planificación que involucren a un hilo pueden afectar al rendimiento de la aplicación completa.
- Paralelismo de grano fino: es un uso mucho más complejo que el que se consigue con el uso de hilos. Si bien gran parte del trabajo se realiza en aplicaciones muy paralelas, este es un campo muy especializado y fragmentado, con varias soluciones diferentes.
-
PLANIFICACIÓN DE UN MULTIPROCESADOR
En la planificación de un multiprocesador deben considerarse tres puntos interrelacionados: asignación de recursos, uso de multiprogramación en procesadores individuales y expedición de un proceso.
Asignación de procesos a los procesadores
- Estática: un proceso es asignado a un procesador determinado, desde su activación hasta su terminación, por lo que debe mantenerse una cola dedicada a corto plazo para cada procesador. La desventaja que posee es que un procesador puede estar desocupado, con su cola vacía, mientras que otro procesador tiene trabajos pendientes.
- Dinámica: todos los procesos van en una cola global y son ejecutados en cualquier procesador que esté disponible. De este modo, durante la vida de un proceso, éste puede ejecutarse en diferentes procesadores en momentos diferentes.
Hemos hablado de asignación estática o dinámica, que se refiere a la dedicación de los procesos con respecto a los procesadores, pero también hace falta asignar los procesos a los procesadores. Para ello, se pueden utilizar dos métodos: arquitectura maestro/esclavo o arquitectura simétrica (SMP – Simmetric Multiprocessing) (Ver Capítulo 2).
Uso de multiprogramación en los procesadores individuales
En los multiprocesadores tradicionales, con sincronización de grano grueso o independiente, está claro que cada procesador individual podría alternar entre varios procesos para conseguir una alta utilización y, por tanto, un mejor rendimiento. Sin embargo, cuando se trabaja con aplicaciones de grano medio ejecutándose en muchos procesadores, la situación es menos clara. Cuando hay varios procesadores disponibles, no resulta tan importante que cada procesador esté 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 ejecutar simultáneamente.
Expedición real de un proceso
Es un sistema monoprocesador multiprogramado, el uso de prioridades o algoritmos de planificación sofisticados basados en la utilización anterior puede mejorar la simple estrategia FIFO de decisión. Pero cuando se considera un multiprocesador, esta complejidad puede ser innecesaria o incluso contraproducente.