Académique Documents
Professionnel Documents
Culture Documents
Estructura_y_componentes_1.JPG
Arquitectura de Multiprocesamiento Simtrico
La interaccin del hilo tiene dos componentes: cmo manejan los hilos la
competicin para los mismos recursos, y cmo se comunican los hilos entre s
mismos.
Cuando dos hilos quieren acceder al mismo recurso, uno de ellos tiene que
esperar. El recurso puede ser un disk drive, un registro en una base de datos
que otro hilo est escribiendo, o cualquier otra innumerable caracterstica del
sistema. Minimizar este retardo es un problema de diseo central para las
instalaciones de hardware y el software que corre. Es generalmente el factor
ms grande en de proporcionar escalabilidad perfecta del funcionamiento de
los sistemas de multiprocesamiento, porque corriendo hilos que nunca
compiten por el mismo recurso es efectivamente imposible.
Un segundo factor es la sincronizacin del hilo. Cuando un programa est
diseado en hilos, hay muchas ocasiones donde los hilos tienen que interactuar
y los puntos de la interaccin requieren control delicado. Por ejemplo, si un hilo
est preparando los datos para que otro hilo procese, los retardos pueden
ocurrir cuando el primer hilo no tiene los datos listos cuando el hilo de proceso
los necesita. Ms ejemplos convincentes ocurren cuando dos hilos necesitan
compartir un rea comn de la memoria. Si ambos hilos pueden escribir a la
misma rea en memoria, entonces el hilo que escribi primero tiene que
comprobar que lo que escribi no se ha sobreescrito, o debe aislar otros hilos
hasta que haya terminado con los datos. Esta administracin de sincronizacin
e inter-hilo es claramente un aspecto que no se beneficia de tener ms
recursos disponibles procesando.
El encabezado del sistema es el manejo del hilo hecho por sistema operativo.
Ms procesadores en funcionamiento, ms sistema operativo tiene que
coordinar. Consecuentemente, cada nuevo procesador agrega
incrementalmente al trabajo de la administracin del sistema operativo. Esto
significa que cada nuevo procesador contribuir cada vez menos al
rendimiento total del sistema.
Un sistema de multiprocesadores debe tener capacidad para gestionar la
reparticin de memoria entre varios procesadores, pero tambin debe distribuir
la carga de trabajo.
Estructura_y_componentes_2.JPG
- Los procesadores no cooperan en la ejecucin de un proceso individual, que
habr sido asignado a uno de ellos.
- Tratamiento Simtrico Es la organizacin ms complicada de implementar y
tambin la ms poderosa y confiable.
- El Sistema Operativo administra un grupo de procesadores idnticos, donde
cualquiera puede utilizar cualquier dispositivo de Entrada / Salida y cualquiera
puede referenciar a cualquier unidad de almacenamiento.
- El Sistema Operativo precisa cdigo reentrarte y exclusin mutua.
- Es posible equilibrar la carga de trabajo ms precisamente que en las otras
organizaciones.
Adquieren significativa importancia el hardware y el software para resolucin
de conflictos. Todos los procesadores pueden cooperar en la ejecucin de un
proceso determinado; El procesador ejecutivo es el responsable (uno slo) en
un momento dado de las tablas y funciones del sistema; as se evitan los
conflictos sobre la informacin global.
El rendimiento que pueda obtenerse en cualquier sistema informtico es
resultado de la combinacin del hardware y del software; y como elemento
radical del software, el sistema operativo. Con la aparicin de mquinas de
propsito general de ms de un procesador, surge la necesidad de adaptar los
sistemas operativos ya existentes para la gestin de un nuevo recurso con
mltiples instancias: el procesador.
Al hablar de sistemas operativos en entornos paralelos, hemos de distinguir
cuidadosamente dos aspectos del trabajo paralelo. Por un lado, el sistema
operativo como gestor de los recursos que utilizan los usuarios, ha de ser
capaz de dar soporte a trabajos paralelos; por ejemplo, que un nico programa
pueda utilizar varios procesadores. Por otro lado, el propio sistema operativo
image_(2).JPG
*
*
Caractersticas Generales:
Espacio de direcciones de memoria compartido
Tiempo de acceso uniforme para toda direccin
Hardware bastante simple.
El cuello de botella es el acceso a memoria principal, lo cual implica:
Grandes cachs en cada procesador
El nmero de procesadores no puede ser muy alto. Hoy en da N32.
*
*
Problema de coherencia en UMA:
El overhead por acceder a la memoria compartida es muy grande. Hay que
usar cachs.
Debemos asegurar la coherencia de los datos en dichos dispositivos.
Cuando usamos un dato privado traerlo a cach.
*
*
Solucin:
Intentar evitar las incoherencias mediante hardware.
En UMA se usan protocolos de husmeo (snooping):
Se pueden utilizar gracias a tener un bus nico y compartido de
comunicacin.
Los controladores de cachs locales espan el bus para ver si circula algn
dato de alguna lnea que tenga almacenada en su cach.
Los cachs deben de estar provistos de 2 puertos de acceso (p.e. replicando
la memoria de etiquetas).
Uno para el acceso del procesador.
Otro para que el controlador pueda comparar las direcciones que aparecen
por el bus.
Ejemplo: Protocolo de invalidacin CB (MSI).
ccNUMA
docNUMA
COMA
SVM
image_(3).JPG
Caractersticas Generales:
Espacio de direcciones de memoria compartido.
Tiempo de acceso no uniforme para toda direccin. Depende de si accedemos
a memoria local (no a cach) o a remota.
Debido al incremento de prestaciones del uniprocesador y del AB requerido,
sta es la nica solucin para sistemas con muchos procesadores.
tacc pequeo en accesos a memoria local.
image_(4).JPG
image_(8).JPG
image_(10).JPG
Figura "6"
image_(14).JPG
Figura "9". (Cortesa de ACM computing Surveys, Enslow, 1977)
image_(15).JPG
Figura "10"
El mdulo mulltiplexor; multiplexa datos, direcciones de palabras dentro del
mdulo y seales de control desde el procesador hasta el mdulo de memoria,
el mismo esta controlado por el nmero codificado del procesador
seleccionado.
Tericamente la expansin del sistema esta limitado slo por la medida de la
matriz del conmutador, que con frecuencia se puede expandir modularmente
dentro del diseo inicial y otras limitaciones de ingeniera.
Para proporcionar la flexibilidad que se requiere en el acceso a los dispositivos
de E/S, una extensin del concepto de conmutador de barras cruzadas consiste
en utilizar un conmutador similar en el lado del dispositivo de E/S o canal,
como se ve en la figura 11. El hardware necesario para la implementacin es
bastante diferente y no tan complejo porque los controladores y dispositivos
estn diseados para reconocer su propia direccin nica.
image_(16).JPG
Figura "11"
El conmutador de barras cruzadas tiene capacidad para obtener el mayor
ancho de banda y eficiencia del sistema. La fiabilidad del mismo es
problemtica; sin embargo se puede mejorar mediante segmentacin y
redundancia dentro del conmutador.
Si el control, la conmutacin y la lgica de arbitraje que distribuidos por toda la
matriz del conmutador de barras cruzadas se distribuyen en los interfaces de
los mdulos de memoria, resulta un sistema de memoria multipuesto como en
la Figura 12
image_(17).JPG
Figura "12"
La flexibilidad para configurar el sistema tambin hace posible designar
porciones de memoria privadas para ciertos procesadores, unidades E/S o
combinacin de ellos, as se ve en la figura 13: en esta organizacin los
mdulos de memoria M0 y M3 son privador para los procesadores P0 y P1.
image_(18).JPG
Figura "13"
La organizacin de memoria multipuerto tambin puede soportar accesos sin
bloqueo a la memoria si se utiliza una topologa completamente conectada.
Es muy difcil justificar el uso de un conmutador de barras cruzadas para
grandes sistemas de multiprocesamiento. La ausencia de un conmutador con
un coste y rendimiento razonables es un o de los motivos que ha impedido el
crecimiento de grandes sistemas multimicroprocesador. El coste elevado del
conmutador se puede evitar utilizando un conmutador con un nmero
restringido de permutaciones posibles.
*
*
*
*
Configuraciones de sistemas operativos para multiprocesadores.
4. La mayor paree del cdigo supervisor debe ser reentrante, ya que varios
procesadores pueden ejecutar la misma rutina de servicio al mismo tiempo.
5. Pueden ocurrir conflictos de acceso a las tablas y retardos de bloqueo, pero
no hay forma de evitar esto con supervisores mltiples; el punto importante es
que se deben controlar de tal manera que la integridad del sistema quede
protegida.
Una de las preguntas bsicas que hay que discutir es: en que se diferencian el
software de los monoprocesadores de los multiprocesadores? Existen
bsicamente dos diferencias fundamentales. Estas diferencias justifican que
tanto el hardware como el software de tales sistemas proporcionen facilidades
diferentes tanto a un monoprocesador multiprogramado y a procesadores
mltiples. Un monoprocesador multiprogramado puede simular mediante
tcnicas de mltiples procesadores virtuales; sin embargo, los procesadores
mltiples aumentan normalmente la cantidad de software de administracin
que se debe dar.