Thursday, July 21, 2016

Multiprocesadores



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

Planicació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 planicacion especico es menos importante (FCFS puede ser solo un poco peor que un RR)

·        Con varios procesadores, una planicacion eciente que aproveche al 100 % las CPUs es todavía más complicada

No comments:

Post a Comment