Hardware de un multiprocesador.
Multiprocesadores
Simétricos (SMP)
A medida que aumenta la
siempre creciente demanda de mayores prestaciones, y conforme el coste de los
microprocesadores se reduce, los fabricantes han introducido los sistemas SMP.
El término SMP, sistema multiprocesador simétrico, se refiere a la
arquitectura hardware del sistema multiprocesador y al comportamiento del
sistema operativo que utiliza dicha arquitectura. Un SMP es un computador con
las siguientes características:
1)
Tiene
dos o más procesadores similares de capacidades comparables.
2)
Los
procesadores comparten la memoria principal y la E/S, y están
interconectados mediante un bus u otro tipo de sistema de interconexión,
de manera que el tiempo de acceso a memoria es aproximadamente el mismo para
todos los procesadores.
3)
Todos
los procesadores comparten los dispositivos de E/S, pero pueden hacerlo bien a
través de los mismos canales, o bien a través de otros caminos de acceso al
mismo dispositivo.
4)
Todos
los procesadores pueden desempeñar las mismas funciones (de ahí el término
simétrico).
5)
El
sistema está controlado por un sistema operativo que posibilita la interacción
entre los procesadores y sus programas.
La última de las
características anteriores apunta a una de las diferencias de los SMP respecto
a los sistemas multiprocesadores débilmente acoplados, como son los ‘clusters’.
En estos, la unidad de interacción es normalmente un mensaje o un fichero
completo. Sin embargo, en un SMP, la interacción se puede producir a través de
elementos de datos individuales, y puede existir un elevado nivel de
cooperación entre procesadores. De ahí que esten clasificados como sistemas
fuertemente acoplados.
Prestaciones: Si el trabajo a
realizar por un computador puede organizarse de forma que diferentes partes
puedan realizarse en paralelo, concurrentemente, entonces un sistema con varios
procesadores proporcionará mejores prestaciones que uno con un solo procesador
del mismo tipo.
Disponibilidad: Como en un SMP todos
los procesadores pueden realizar las mismas funciones, un fallo en un
procesador no hará que el computador se detenga.
Crecimiento incremental: Se pueden aumentar
las prestaciones del sistema añadiendo más procesadores.
Escalado: Los fabricantes
pueden ofrecer una gama de productos con diferentes precios y prestaciones, en
función del número de procesadores que configuran el sistema.
Tipos
de Sistemas Operativos Multiporocesadores
Existen 3
tipos básicos de sistemas operativos multiuprocesadores:
- Supervisores separados
- Maestro / Esclavo
- Simetríco
Supervisores separados
En estos
sistemas operativos, cada procesador cuenta con un sistema operativo que
gestiona de forma local, la memoria, los dispositivos de entrada y salida, de
tal forma que cada procesador funciona como un sistema independiente y solo se
deben añadir algunas estructuras de datos para permitir la comunicación entre
estos sistemas.
Para la
sincronización de los procesos, cuando se requiere de llevar a cabo procesos en
paralelo es posible implementar primitivas de paso de mensajes.
El paralelismo
dentro de las aplicaciones se logra dividiendo las operaciones en
subtareas que serán asignadas a distintos procesadores de forma estática, por
un computador aparte.
La asignación
estatica de los procesos supone un problema en términos de rendimiento debido a
que no se pueden equilibrar las cargas de trabajo excesivo o imprevistas.
Maestro / esclavo
Tal y como su
nombre lo indica, en este tipo de sistema operativo se designa un
procesador maestro en el que se encarga de ejecutar el sistema operativo,
ejecutando los trabajos de planificación, controlando a todos los procesadores
esclavos.
La ejecución
de programas en paralelo es posible dado que el procesador maestro planifica y
divide las operaciones entre los procesadores esclavos,
La característica
principal de este modelo es también su debilidad, ya que el hecho de tener un
solo procesador maestro ocasiona un cuello de botella, ya que el procesador
maestro solo puede manejar un cierto numero de procesadores esclavos con
eficiencia.
Simétrico
En este tipo
de organización todos los procesadores son funcionalmente identico, es decir
todos poseen acceso a todos los recursos del sistema, pero si por el contrario
topamos con que solo algunos pueden acceder a los recursos como los
dispositivos de entrada y salida entonces estamos hablando de un sistema
asimétrico.
En los
sistemas simétricos cualquier procesador puede ejecutar el sistema operativo,
logrando incluso ejecutar el sistema operativo de forma paralela.
Sincronización de multiprocesadores
Solución incorrecta: deshabilitar
interrupciones (locales)
Solución: instrucción TSL con bloqueo de
bus. Si no hubiera bloqueo de bus:
Problemas de TSL:
·
Puede
interactuar negativamente con el protocolo de coherencia de caches (TSL es de
escritura):
o
Solución 1:
leer palabra y ejecutar TSL solo si palabra == 0
o
Solución 2:
pausa aleatoria entre ejecuciones de TSL
·
Supone
una espera activa. Posible solución: cambiar de proceso si la espera activa
dura ya cierto tiempo
Planificación
de procesos
·
Bidimensional:
que proceso y en que CPU
·
Se
debe tener en cuenta la relación entre procesos: independientes (procesos de
usuarios distintos) y dependientes (make paralelo, hilos de un proceso,. . .)
·
Importancia
de los detalles del hardware (caches, etc.)
·
El
algoritmo de planificacion especifico es menos importante
(FCFS puede ser solo un poco peor que un RR)
·
Con
varios procesadores, una planificacion eficiente
que aproveche al 100 % las CPUs es todavía más complicada
No comments:
Post a Comment