Sunteți pe pagina 1din 24

13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

Sistemas Operativos de Multiprocesador

SISTEMAS OPERATIVOS DE MULTIPROCESADOR

1.1. Descripcion general


Los sistemas de multiprocesamiento tienen procesadores mltiples corriendo al mismo tiempo. Los
sistemas de multiprocesamiento tradicionales tienen de 2 a 128 procesadores. Ms all de ese
nmero (y este lmite superior sigue aumentando) de sistemas de multiprocesamiento se convierten
en procesadores paralelos. Los sistemas de multiprocesamiento permiten que diferentes hilos
funcionen en diferentes procesadores. Esta capacidad acelera considerablemente el funcionamiento
de programa. Ahora dos hilos pueden funcionar ms o menos independientemente uno de otro sin
requerir que el hilo intercambia para conseguir los recursos del procesador. Los sistemas operativos
de multiprocesador son en s mismos con hilos mltiples y generan tambin hilos que pueden
funcionar en los procesadores separados para mejor provecho.

Un sistema operativo multiproceso se refiere al nmero de procesadores del sistema, que es ms de uno y ste es
capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas:
simtrica o asimtricamente.

Cuando se trabaja de manera asimtrica, el sistema operativo selecciona a uno de los procesadores el cual jugar
el papel de procesador maestro y servir como pivote para distribuir la carga a los dems procesadores, que
reciben el nombre de esclavos.

Cuando se trabaja de manera simtrica, los procesos o partes de ellos (threads) son enviados indistintamente a
cualesquira de los procesadores disponibles, teniendo, tericamente, una mejor distribucin y equilibrio en la
carga de trabajo bajo este esquema. Se dice que un thread es la parte activa en memoria y corriendo de un
proceso, lo cual puede consistir de un rea de memoria, un conjunto de registros con valores especficos, la pila y
otros valores de contexto. Us aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones
para aprovechar los varios procesadores.

Existen aplicaciones que fueron hechas para correr en sistemas monoproceso que no toman ninguna ventaja a
menos que el sistema operativo o el compilador detecte secciones de cdigo paralelizable, los cuales son
ejecutados al mismo tiempo en procesadores diferentes. Por otro lado, el programador puede modificar sus
algoritmos y aprovechar por s mismo esta facilidad, pero esta ltima opcin las ms de las veces es costosa en
horas hombre y muy tediosa, obligando al programador a ocupar tanto o ms tiempo a la paralelizacin que a
elaborar el algoritmo inicial.

A medida que crece el nmero de usuarios de un sistema de computacin, o bien las necesidades de los mismos,
crece tambin el nmero de procesos a ejecutar. As las cosas pueden llegar un momento en que un sistema
operativo monoprocesador pueda verse desbordado en su labor. Lo que podemos es en primer lugar, y a nivel de
hardware, incorporar ms y mejores procesadores. En segundo lugar, vestir al sistema fsico con un sistema
operativo multiprocesador que sea verdaderamente capaz de aprovechar todos los procesadores instalados.

Las capacidades fundamentales son:


Equilibrio de cargas de Entrada / Salida.
Equilibrio de carga del procesador.
Reconfiguracin.

Los sistemas multiprocesadores proporcionan una alternativa arquitectnica atractiva para mejorar el rendimiento
de los sistemas informticos mediante la reunin de un cierto nmero de procesadores estndares de bajo coste.
Un multiprocesador bien diseado puede llegar al lmite tecnolgico de velocidad mediante la operacin de varios
procesadores de alta velocidad en paralelo. Alternativamente, un sistema multiprocesador compuesto de
microprocesadores estndares de amplia disponibilidad puede lograr una mejor proporcin costo/rendimiento que
un monoprocesador de elevada velocidad basado en tecnologas exticas. El coste relativamente alto de los
sistemas multiprocesadores puede ser compensado si se les emplea como servidores de clculo en sistemas
distribuidos. En tal disposicin, el trabajo de interfaz de usuario se delega a las estaciones
https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print de trabajo clientes, 1/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador
distribuidos. En tal disposicin, el trabajo de interfaz de usuario se delega a las estaciones de trabajo clientes,
mientras que el multiprocesador puede concentrarse en tareas computacionalemente intensivas, que es lo que
generalmente hacen mejor.
El multiprocesamiento puede aplicarse para proporcionar:
Aumento en la productividad del sistema: mediante la ejecucin de una serie de diferentes procesos de usuario
sobre diferentes procesadores en paralelo.
Ganancia de velocidad de la aplicacin: mediante la ejecucin de algunas partes de la aplicacin en paralelo.
En entornos de tiempo compartido, la productividad puede mejorarse ejecutando una serie de procesos de usuario
no relacionados entre si sobre diferentes procesadores en paralelo. De este modo no se incrementa la velocidad
de cada aplicacin en particular, pero se puede mejorar la productividad del sistema al completar un mayor
nmero de tareas por unidad de tiempo si reprogramacin ni intervencin explicita del programador.
La ganancia de velocidad en las aplicaciones puede obtenerse explotando el paralelismo dentro de una aplicacin
y creando mltiples procesos o hebras que pueden ser planificados para ejecucin sobre diferentes procesadores.
Esta divisin puede efectuarse por medios automticos, tales como compiladores paralelizantes, o explcitamente
mediante sentencias en el programa de aplicacin. La paralelizacion automtica es un problema difcil que ha
generado mucha investigacin, pero su disponibilidad generalizada en la practica parece esta un tanto lejana. Con
el mtodo de divisin en tareas explicitas, el programador delinea las fronteras de tareas y hebras y asegura su
apropiada sincronizacin mediante la invocacin de las primitivas de sincronizacin adecuada. En el aspecto
negativo, la programacin paralela explicita es un proceso complejo y a veces arduo. En el estado actual del arte,
los programas resultantes tienden a ser especficos de cada mquina y son difciles de portar debido a
considerables variaciones en las arquitecturas de los multiprocesadores y de los modelos de programacin.
Las diferentes partes de una aplicacin paralelizada necesitan generalmente sincronizarse e intercambiar datos
despus de completar un etapa de clculo. La comunicacin y sincronizacin entre procesadores reduce la
ganancia de velocidad global al frenar clculos individuales y consumir ancho de banda de interconexin del
sistema. Uno de los principales retos del diseo de los sistemas multiprocesadores es minimizar las interacciones
entre procesadores y proporcionar un mecanismo eficiente para llevarlas a cabo cuando sean necesarias.

1.1.1 Caracteristicas
o Sistemas multiprocesador con mas de una CPU en comunicacin cercana
o Sistemas fuertemente acoplados los procesadores comparten la memoria y el reloj, la
comunicacin por lo general se realiza a travs de la memoria compartida
o Cada procesador controla sus propios recursos dedicados.
o La reconfiguracin de los dispositivos de Entrada / Salida puede implicar el cambio de dispositivos
a diferentes procesadores con distintos Sistemas Operativos.
o La contencin sobre las tablas del Sistema Operativo es mnima.
o Los procesadores no cooperan en la ejecucin de un proceso individual, que habr sido asignado a
uno de ellos.
o Tratamiento Simtrico Es la organizacin ms complicada de implementar y tambin la ms
poderosa y confiable.
o 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.
o El Sistema Operativo precisa cdigo reentrarte y exclusin mutua.
o Es posible equilibrar la carga de trabajo ms precisamente que en las otras organizaciones.
o Adquieren significativa importancia el hardware y el software para resolucin de conflictos.
o Todos los procesadores pueden cooperar en la ejecucin de un proceso determinado.
o 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.
o Incremento del rendimiento y la confiabilidad
o Econmicos
o Sistemas de fallos controlados por software

1.2. HISTORIA Y EVOLUCION


El concepto de trabajo en equipo, el dividir una tarea entre varias unidades de ejecucin para que pueda
completarse ms rpidamente, fue naturalmente llevado al mundo de las computadoras prcticamente desde
sus inicios. David Slotnick, quien fuera colaborador de Von Neumann, le hizo la propuesta de una mquina que
contara con varias unidades de procesamiento central; sin embargo, al sentir de Von Neumann, la tecnologa
de la poca no permita la realizacin de semejante proyecto. Aun as, Slotnick continu con sus ideas, lo que
eventualmente dara origen a la ILLIAC IV (1964), considerada una de las primeras computadoras
masivamente paralelas de la historia. En la actualidad, las computadoras ms rpidas del mundo son las

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 2/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

mquinas masivamente paralelas.


El cmputo paralelo ofrece una serie de ventajas que lo hacen particularmente atractivo para los requerimientos
de capacidad de cmputo, en particular los de la comunidad cientfica. Una de estas ventajas es econmica. El
uso de componentes comnmente disponibles, en grandes cantidades, permite ofrecer mayor rendimiento, a un
precio menor que el de mquinas con procesadores especialmente diseados (como por ejemplo las mquinas
de procesadores vectoriales y de propsito especfico). Adicionalmente, las computadoras paralelas son
inherentemente escalables, permitiendo actualizarlas para adecuarlas a una necesidad creciente. Las
arquitecturas ``tradicionales'' se actualizan haciendo los procesadores existentes obsoletos por la introduccin
de nueva tecnologa a un costo posiblemente elevado. Por otro lado, una arquitectura paralela se puede
actualizar en trminos de rendimiento simplemente agregando ms procesadores.
En ocasiones se menciona tambin la limitante fsica; existen factores que limitan la velocidad mxima de un
procesador, independientemente del factor econmico. Barreras fsicas infranqueables, tales como la velocidad
de la luz, efectos cunticos al reducir el tamao de los elementos de los procesadores, y problemas causados
por fenmenos elctricos a pequeas escalas, restringen la capacidad mxima de un sistema un procesador,
dejando la opcin obvia de colocar muchos procesadores para realizar clculos cooperativamente.

1.3. ESTRUCTURA Y COMPONENTES DEL SISTEMA


Multiprocesamiento asimtrico y simtrico
En el multiprocesamiento asimtrico, uno o ms procesadores se dedican exclusivamente a tareas especficas,
tales como corriendo el sistema operativo. Los procesadores restantes estaban disponibles para el resto de las
tareas, generalmente aplicaciones del usuario. Esta configuracin no es ptima. Los procesadores del sistema
operativo pueden funcionar en la capacidad 100%, mientras que los procesadores usuario-asignados no estn
haciendo nada.
El multiprocesamiento simtrico (SMP) es una arquitectura que balancea la carga de proceso mejor: La
simetra refiere al hecho que cualquier hilo - sea del sistema operativo o aplicacin del usuario- puede funcionar
en cualquier procesador. De esta manera, la carga computacional total es separada uniformemente por todos los
recursos computacionales. Hoy, los sistemas de multiprocesamiento simtricos son la norma, y los diseos
asimtricos han desaparecidos casi totalmente.
external image clip_image003.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.

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 3/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

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.

- 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 est corriendo en un sistema multiprocesador y, por tanto, l mismo es
un programa paralelo.
Las mismas rutinas del sistema operativo han de adaptarse al nuevo funcionamiento del entorno, ahora paralelo, y
con problemas de concurrencia y exclusin mutua muchas veces encubiertos.

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 4/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

La mayora de las realizaciones de sistemas multiprocesadores suelen incluir el diseo de mecanismos para la
sincronizacin y comunicacin entre procesadores. Para una mayor eficiencia, se intenta incluso que estos
mecanismos formen parte del hardware de la mquina, aumentando o modificando, si es posible, el conjunto de
instrucciones del procesador.
Tres configuraciones bsicas han sido adoptadas a la hora de clasificar un sistema operativo, segn su
comportamiento en presencia de mltiples procesadores: supervisores separados, master/slave y simtricos
[ALMA89].

El ordenador que cuenta con dos o ms microprocesadores, que son un conjunto de circuitos electrnicos
altamente integrados para el clculo y control computacional es denominado multiprocesador. El microprocesador
puede ejecutar simultneamente varios hilos de un mismo proceso.

Los ordenadores multiprocesador presentan problemas de diseo, derivados del hecho de que 2 programas se
ejecuten simultneamente y potencialmente pueden interferirse entre si. Por ellos existen dos arquitecturas que
resuelven dichos problemas; esta es una clasificacin en funcin de la organizacin de la memoria:

Arquitectura SMP (Uma)Uniform Memory Access.


Arquitectura DSM (Numa.) NonUuniform Memory Access.
Message Passing Machines (MPM).

1.3.1. Arquitectura SMP (Uma)

Los multiprocesadores simtricos (Symmetric Multiprocessor) son ordenadores con arquitectura de memoria
compartida que presentan en la memoria principal un acceso simtrico desde cualquier procesador, es decir, el
retardo en el acceso a cualquier posicin de memoria es el mismo con independencia del procesador desde el que
se realice la operacin o tarea, dicha arquitectura es denominada como Acceso Uniforma a Memoria (UMA) y se
lleva acabo con una memoria compartida pero centralizada. Estos multiprocesadores dominan el volumen como el
capital invertido. Esta arquitectura a su vez se encuentra dividida en:
SMP con bus
SMP escalable

*
*
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:
https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 5/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

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.
Si accedemos a un dato compartido, hay que traerlo a cach, pero si otros procesadores tambin acceden al
dato y se lo llevan a su cach, existirn varias copias distintas del mismo dato.

*
*
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).

1.3.2. Arquitectura DSM (Numa).

La memoria compartida distribuida o DSM es una abstraccin que se propone como alternativa a la comunicacin
por mensajes. Los multiprocesadores de memoria compartida y distribuida (DSM o Distributed Shared Memory),
son ordenadores MIMID, en los cuales la memoria esta distribuida entre los nodos. Tomando en cuenta que el
espacio de direccionamiento es global, el acceso a memoria principal es asimtrico. Esta arquitectura de memoria
que se genera en retardo de acceso dependiente tanto la posicin de memoria como el procesador se denomina
Acceso No Uniforme a Memoria (NUMA), hace su aparicin cuando la memoria compartida esta distribuida entre
los nodos. De esta manera, se mejora el retardo medio de acceso a memoria, ya que en cada ordenador los
accesos a posiciones de su memoria local presentan un retardo sensiblemente inferior al caso en que es accedido
a posiciones de memoria en otros ordenadores. Esta clase de ordenadores con arquitectura NUMA presentas
escalabilidad. Propone un espacio de direcciones de memoria virtual que integre la memoria de todas las
computadoras del sistema, y su uso mediante paginacin. Las pginas quedan restringidas a estar
necesariamente en un nico ordenador. Cuando un programa intenta acceder a una posicin virtual de memoria,
se comprueba si esa pgina se encuentra de forma local. Si no se encuentra, se provoca un fallo de pgina, y el
sistema operativo solicita la pgina al resto de computadoras. El sistema funciona de forma anloga al sistema de
memoria virtual tradicional, pero en este caso los fallos de pgina se propagan al resto de ordenadores, hasta que
la peticin llega al ordenador que tiene la pgina virtual solicitada en su memoria local. A primera vista este
sistema parece ms eficiente que el acceso a la memoria virtual en disco, pero en la realidad ha mostrado ser un
sistema demasiado lento en ciertas aplicaciones, ya que provoca un trfico de pginas excesivo. De la misma
manera que la arquitectura SMA se divide en:

ccNUMA
docNUMA
COMA
SVM

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 6/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

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.
Hard de la red es complejo, necesita redes de interconexin especiales. Existen distintas lneas de
comunicacin separadas mayor AB.
El problema de la coherencia es ms difcil de mantener en hardware.
Estos multiprocesadores son escalables
Escalable: Si crece el nmero de procesadores N, entonces la memoria crece como orden(N). Esto es gracias a
que cada procesador lleva su propia memoria.
Los procesadores UMA no son escalables, puesto que si aumentamos el nmero de procesadores, la memoria
es la misma.

1.3.3. MPM (Message Passing Machines).

Espacio de direcciones de memoria distribuido.


Son compatibles en hardware a los NUMA.
Cada procesador es un computador independiente del resto.

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 7/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

Fcilmente escalable.
El mecanismo de comunicacin es a travs de mensajes (igual que la comunicacin entre procesos del S.O.). No
necesita mecanismos hardware ni para controlar la coherencia de cachs (pues son espacios distintos de
direcciones), ni para implementar los accesos remotos.
La red es la parte ms compleja de escalar.

1.4. VENTAJAS DE LOS SO DE MULTIPROCESADORES

Algunos de los argumentos a favor del multiprocesamiento incluyen:


Rendimiento y potencia de clculo: dedicando mltiples procesadores a la ejecucin de una aplicacin es
posible obtener ganancias significativas de velocidad. Los problemas que suponen las interacciones ms extensas
o ms frecuentes entre procesadores pueden resolverse ms rpidamente que en un sistema distribuido ya que el
ancho de banda de comunicacin entre procesadores es ms elevado.
Tolerancia a fallos: La redundancia inherente a los multiprocesadores puede emplearse para aumentar la
disponibilidad y eliminar puntos de fallo.
Flexibilidad: Un sistema multiprocesador podra tener capacidad para reconfigurarse dinmicamente y ajustarse
de tal modo que optimice diferentes objetivos para diferentes aplicaciones, tales como aumento de productividad,
ganancia de velocidad de las aplicaciones o incluso ciertos aspectos de tolerancia a fallos.
Crecimiento modular: Hasta cierto punto, un diseo modular de un sistema puede adaptarse a las
necesidades de una instalacin especfica aadindole exactamente el tipo de componente que mas
probablemente alivie un cuello de botella importante, tal como procesadores, memorias o dispositivos de E/S.
Especializacin funcional: Se puede aadir procesadores comerciales con relaciones coste/rendimiento
varios rdenes de magnitud inferiores a la de los supercomputadores pueden estructurase en
multiprocesadores con una relacin coste/ efectividad adecuada a un amplio rango de aplicaciones.

1.5. CLASIFICACIN DE MULTIPROCESADORES

Existen varias clasificaciones de las arquitecturas informticas paralelas. Flynn (1966) introdujo un esquema
para clasificar la arquitectura de un computador basndose en cmo la mquina relaciona sus instrucciones
(SI, single instruccin) o un flujo de mltiples instrucciones (MI). Esto da lugar a la clasificacin siguiente:
SISD: Flujo de una sola instruccin, flujo de un solo dato. Esta categora incluye a los computadores serie
convencionales.
SIMD. Flujo de una sola instruccin, flujo de mltiples datos. Estos son tpicamente los procesadores
vectoriales y los computadores en array en los cuales una sola instruccin puede operar sobre diferentes datos
en diferentes unidades de ejecucin.
MISD. Flujo de mltiples instrucciones, flujo de un solo datos. Esta es una organizacin raras veces
utilizada en la cual mltiples instrucciones operan sobre un nico flojo de datos en paralelo.
MIMD. Flujo de mltiples instrucciones, flujo de mltiples datos. La ejecucin simultanea de mltiples
instrucciones que operan sobre varios flujos de datos. Esta clase incluye los multiprocesadores de diferentes
tipos.

1.6. ESTRUCTURAS FUNCIONALES

Es esta parte introducimos las estructuras funcionales de los sistemas multiprocesador.


En trminos muy generales podemos caracterizar a los multiprocesadores atendiendo a 2 criterios:
Un multiprocesador es un nico computador que incluye mltiples procesadores.
Los procesadores se pueden comunicar y cooperar a diferentes niveles para resolver un problema dado.
La comunicacin se puede realizar enviando mensajes de un procesador a otro o compartiendo una
memoria comn.
https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 8/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

Existen algunas similitudes entre los multiprocesadores y los sistemas multicomputador, ya que ambos estn
motivados por el mismo objetivo bsico: soportan operaciones concurrentes en el sistema. Sin embargo, existe
una distincin importante entre ellos basada en el grado en que comparte recursos y cooperan en la solucin
de problemas. Un sistema multicomputador consta de varios computadores autnomos que pueden o no
comunicarse entre ellos. Un sistema multiprocesador esta controlado por un sistema operativo que
proporciona interaccin entre los procesadores y sus programas a nivel de procesos.
A continuacin describimos 2 conjuntos diferentes de modelos arquitectnicos para un multiprocesador.

1.6.1. Ligeramente acoplados

Los procesadores individuales tienen memorias privadas y no existe una memoria global compartida. Cada
procesador tiene un conjunto de dispositivos de entrada-salida y una gran memoria local a donde acceden la
mayor parte de las instrucciones y datos. Para reverenciarnos al conjunto formado por el procesador, su
memoria local y sus interfaces de E/S utilizaremos el trmino modulo computador. los procesos que se ejecutan
sobre diferentes mdulos de computador se comunican mediante intercambio de mensajes a travs de un
sistema de transferencia de mensajes (STM). Los sistemas ligeramente acoplados (SLA) resultan eficientes
cuando las interacciones entre las tareas son mnimas.

1.6.2. Estrechamente acoplados

Los procesadores contienen memoria globalmente compartida a la que todos lo procesadores tienen acceso.
se comunican a travs de una memoria principal compartida, por lo que la velocidad a la que se pueden
comunicar dato de un procesador a otro es del mismo orden que el ancho de banda de la memoria. En cada
procesador puede existir una memoria cache. Existe una completa conectividad entre los procesadores y la
memoria, esta conectividad se puede llevar a cabo bien insertando una red de interconexin entre los
procesadores y la memoria bien por medio de una memoria multipuesto. Unos de los factores que limitan la
expansin de un sistema estrechamente acoplado es la perdida de rendimiento debida a los conflictos que
aparecen cuando 2 o mas procesadores intentan acceder a la misma unidad de memoria al mismo tiempo. Los
sistemas estrechamente acoplados (SEA) pueden tolerar un alto grado de interacciones entre las tareas sin un
deterioro significativo en el rendimiento.
La divisin no es muy estricta ya que existen sistemas hbridos que tienen tanto memoria privada en cada
procesador como memoria global compartida a la que muchos o todos los procesadores tienen acceso. La
memoria compartida es fundamental para la comunicacin y sincronizacin entre procesadores en sistemas
fuertemente acoplados se han distinguido por un mayor ancho de banda y menores retardos en sus rutas de
interconexin. En sistemas dbilmente acoplados puros, el mecanismo principal de comunicacin entre
procesadores es el paso de mensajes.
Las configuraciones hibridas y algunos sistemas dbilmente acoplados permiten a los procesadores acceder a
un memoria no local e incluso a la memoria privada de otros procesadores. Existe generalmente una
penalizacin por acceder a la memoria no local en forma de retardos aadidos provocados por el arbitraje de
contencin y el paso a travs de las rutas de interconexin procesador-memoria. Estos factores dan lugar a al
siguiente clasificacin de los multiprocesadores de memoria compartida en base a la arquitectura de la
memoria y los retardos de acceso.
Acceso uniforme a memoria (UMA, uniform memory acces): sistemas en donde los procesadores pueden
acceder a toda la memoria disponible con la misma velocidad: esto incluye muchas arquitecturas con bus
compartido.
Acceso no uniforme a memoria (NUMA, nonuniform memory acces): Sistemas en donde hay una diferencia
de tiempo en el acceso a diferentes reas de memoria, dependiendo de la proximidad a un determinado
procesador y la complejidad del mecanismo de conmutacin entre el procesador y la seccin referenciada de la

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 9/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

memoria del sistema.


A veces, se aade a esta clasificacin una tercera categora denominada acceso no remoto a memoria
(NORMA, no remote memory) para designar los sistemas sin memoria compartida.
En multiprocesadores fuertemente acoplados si se desea alta velocidad o procesamiento en tiempo real, se
pueden utilizar estos sistemas (SEA). La figura 1A consta de una cantidad N de procesadores, L mdulos de
memoria y D canales de entrada-salida, estas unidades estn conectadas a travs de un conjunto de 3 redes
de interconexin, la red de interconexin procesadores-memoria (RIPM), la red de interconexin E/S-
procesador (RIESP) y la red de interconexin Seal-Interrupcin (RISI). LA RIPM es un conmutador que puede
conectar cada procesador a cada modulo de memoria. Un conjunto de puntos de cruce par aun par particular
procesador-memoria incluye (n+k) puntos de cruce, don de N es el ancho de la direccin dentro de un modulo y
K es el ancho de caminos de datos. La complejidad de la memoria multipuesto es similar a la de barras
cruzadas. Alternativamente, la RIPM puede ser una red multietapa.

Figura "1A" Configuraciones de multiprocesadores estrechamente acoplados.

Un modulo de memoria puede satisfacer solamente la peticin de un procesador en un ciclo de memoria dado.
Por tanto, si 2 o ms procesadores intentan acceder al mismo modulo de memoria, ocurre un conflicto que se
resuelve o arbitra mediante la RIPM.
Otro mtodo utilizado para reducir el grado de conflictos consiste en asociar un rea de almacenamiento
reservada con cada procesador.
En la organizacin multiprocesador de la figura 1A cada procesador puede hacer referencias a memoria
principal. Ya que cada referencia a memoria se hace a travs de la RIPM, sufre un retraso en el conmutador de
memoria procesador y, por tanto, se incrementa el tiempo de ciclo de instruccin. El incremente en el tiempo de
ciclo de instruccin reduce la productividad del sistema. Otra consecuencia de la cache es que el trfico a
travs del conmutador de barras cruzadas se puede reducir, lo que reduce sustancialmente la contencin en los
puntos de cruce. En la Figura 1B hay un modulo asociado a cada procesador que dirige las referencias a
memoria bien a la memoria local no mapeada (MLNM ) bien a la cache privada de ese procesador. La
sincronizacin entre procesadores se facilita por el uso de una red interprocesador. La RISI se puede tambin
usar por un procesador que falla para emitir una alarma iniciada por el hardware para los procesadores que
funcionan. La RIESP permite a un procesador comunicarse con el canal de E/S que esta conectado a
dispositivos perifricos.

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 10/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

Figura "1B". Modulo asociado a cada procesador que dirige las referencias a memoria bien a la MLNM.

La complejidad de la RISI puede variar desde un simple bus de tiempo compartido hasta un complejo
conmutador de barras cruzadas. Un bus en tiempo compartido es mucho mas barato que un conmutador de
barras cruzadas, pero encuentra ms contenciones y retardos debido a la lgica de arbitraje del bus. Sin
embargo, la razn de peticiones de interrupcin es suficientemente bajas para hacer que el bus compartido sea
una solucin atractiva para la comunicacin interprocesador.
El conjunto de procesadores usados en un sistema multiprocesador pueden ser homogneos o heterogneos.
Es homogneo si los procesadores con funcionalmente idnticos, incluso de los procesadores son idnticos
pueden ser asimtricos. Esto es, 2 componentes funcionalmente idnticos pueden diferir en otras dimensiones.
En general, un sistema homogneo es ms fcil de programar al tiempo que elimina los problemas que
aparecen al conectar 2 procesadores no similares. El sistema simtrico normalmente puede facilitar la
recuperacin de errores en caso de fallo.

Asimetra entrada-salida: la asimetra tambin se puede extender a los dispositivos entrada salida con
respecto a los procesadores. Una red de interconexin de E/S que tiene conectividad completa es simtrica. La
figura 2 es un ejemplo de subsistema de E/S asimtrico. En tales sistemas los dispositivos asociados a un
procesador no pueden ser accedidos directamente por otro procesador.

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 11/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

Figura " 2" En una estructura completamente simtrica, el fallo de un procesador central no excluye la
accesibilidad de un dispositivo dado por otro procesador. En el caso asimtrico, el fallo de una CPU provoca
que todos los dispositivos asociados a ese procesador resulten inaccesibles. El problema de la inaccesibilidad
que encuentra un conjunto de dispositivos asociando a un procesador que falla puede superarse teniendo
conexiones redundantes, como se muestra en la figura 3.
Figura "3" La desventaja del caso completamente simtrico es el coste del conmutador de barras cruzadas.

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 12/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

1.7. CARACTERSTICAS DE UN PROCESADOR PARA MULTIPROCESAMIENTO

a) Recuperabilidad del proceso: la arquitectura de un procesador utilizado en un sistema


multiprocesador debera reflejar el hecho de que le proceso y el procesador son 2 entidades
diferentes. Si el procesador falla, debera ser posible que otro procesador recupere el estado del
proceso interrumpido de manera a que la ejecucin pueda continuar. Es deseable tener un archivo
compartido por todos los procesadores para el caso que ocurra un modo de operacin degradado.

b) Conmutacin eficiente de contextos: para una utilizacin efectiva, es necesario que el


procesador soporte ms de un dominio de direccionamiento y por tanto, proporcionar operaciones de
cambio de dominio o conmutacin de contexto. Estas operaciones de conmutacin requieren muchas
operaciones sobre colas y pilas. La operacin de conmutacin de contexto salva el estado del
proceso actual y conmuta a un proceso preparado para ejecucin seleccionado mediante la
restauracin del estado del nuevo proceso. El estado de un proceso de ejecucin lo indican los
contenidos de los registros del procesador.
Se puede crear una instruccin especial para llevar a cabo eficientemente la conmutacin de contexto.
Disponiendo de un amplio nmero de conjuntos de registros la conmutacin de tareas puede realizarse
eficientemente mediante el cambio del contenido del registro del proceso actual en el procesador que apunta al
conjunto de registro que contiene el estado de proceso seleccionado como se muestra en la figura 4. El registro
de proceso actual apunta al conjunto de registro actualmente en uso. Las instrucciones de pila salvan y restauran
rpidamente la palabra de estado del procesador a minimizar los recargos de conmutacin.

Figura "4" Conmutacin de contexto en un procesador con mltiples conjuntos de registros."Arquitectura de


computadoras y procesamiento paralelo, Kai Hwang"
c) Grandes espacios de direcciones virtuales y fsicos: un procesador que se vaya a utilizar en la
construccin de un ultiprocesador de propsito general de media o gran escala debe soportar un gran
espacio de direcciones fsicas. Adems de la necesidad de un gran espacio de direcciones fsicas
tambin es deseable un gran espacio de direcciones virtuales. Si fuera posible, el espacio de
direcciones virtuales debera ser segmentado para fomentar la comparticin modular y el chequeo de
fronteras de direcciones para proteccin de memoria y fiabilidad software.
https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 13/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

d) Primitivas eficientes de sincronizacin: el diseo del procesador debe proporcionar la


implementacin de acciones indivisibles que sirvan de base a las primitivas de sincronizacin. Estas
primitivas necesitan mecanismos eficientes para establecer la exclusin mutua, que se requiere
cuando dos o mas proceso estn en ejecucin concurrentemente y debes cooperar al intercambio de
dato durante la computacin.

e) Mecanismos de comunicacin interprocesador: el conjunto de procesadores utilizado en un


multiporcesador debe disponer de un medio eficiente para la comunicacin entre ellos. Este
mecanismo se deber implementar en hardware. Un mecanismo hardware es muy til para atraer la
atencin del procesador objeto. La necesidad del tal mecanismo resulta evidente aun cuando en un
sistema multiprocesador asncrono existen frecuentes peticiones de servicios de intercambio entre
diferentes procesadores. El mecanismo interprocesador hardware puede tambin facilitar la
sincronizacin entre los procesos. Este mecanismo se puede utilizar cuando ocurre un fallo al fin de
indicar una seal hardware para todos los procesadores que estn funcionando, que podran
entonces conocer del procesador que falla y comenzar una recuperacin del error o procedimiento de
diagnostico.

f) Conjunto de instrucciones: el conjunto de instrucciones de un procesador debe tener las


suficientes facilidades para implementar lenguajes de alto nivel que permitan concurrencia efectiva al
nivel de procedimientos y para manipular eficientemente estructuras de datos. Debern disponer de
instrucciones para enlace de procedimientos, construccin de bucles, manipulacin de direcciones.
Adems, el conjunto de instrucciones deber incluir tambin instrucciones para crear y finalizar
caminos de ejecucin paralela dentro de un programa.

Un sistema multiprocesador proporciona un entorno natural donde cada componente puede


monitorizar a los otros de forma relativamente facil. Existen diferentes implementaciones de la tcnica
de deteccin de errores, pero la idea bsica es que el temporizador har aparecer de alguna manera
un indicado de condicin de error si no es desconectado dentro de un lmite de tiempo especificado.

1.8. REDES DE INTERCONEXIN EN LOS MULTIPROCESADORES

La principal caracterstica de un sistema multiprocesador es que cada procesador puede compartir un conjunto de
mdulos de memoria principal, y dispositivos de E/S. Esto se consigue a travs de redes de conexin de memoria-
procesador y otra de conexin E/S-procesador. Existen diferentes formas fsicas para las rede de interconexin
(RI). Entre ellas:

Buses comunes o de tiempo compartido.


El sistema RI ms simple para mltiples procesadores es un camino de comunicacin comn que conecte a todas
las unidades funcionales 5. Este camino se denomina bus comn o de tiempo compartido, es la organizacin
menos compleja y la ms facil de reconfigurar. Las operaciones de transferencia son controladas completamente
por las interfase con e bus de las unidades de envi y recepcin. Ya que el bus es un recurso compartido se
dispone de mecanismos para resolver conflictos.

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 14/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

Figura "5". Organizacin multiprocesador de bus nico


Los mtodos de resolucin incluyen a las prioridades fijas o estticas, las colas y el encadenamiento mariposa. Un
controlador central de bus aunque simplifica la solucin de conflictos, puede tener efectos negativos sobre la
fiabilidad y flexibilidad del sistema. Una unidad receptora reconoce su direccin colocada sobre el bus y responde
a las seales del control del emisor, esto aunque bsico tipifica las operaciones sobre el bus.
Aunque la organizacin por bus nico es fiable y relativamente barata, introduce un componente critico que puede
ocasionar el conflicto del todo el sistema como resultado de una mal funcin en cualquiera de los circuitos interfaz
del bus. La razn de transferencia total dentro del sistema esta limitada al ancho de banda y la velocidad de este
camino nico, por eso son altamente beneficiosos la memoria y dispositivos de E/S privados.
Una extensin del camino nico a dos caminos unidireccionales como se muestra en la figura 6, alivia alguno de
los problemas del sistema sin un incremento apreciable de la complejidad del sistema ni decremento de la fialidad.

Figura "6"
En vista del nmero cada vez mayor de dispositivos conectados a un bus central, as como las velocidades de
estos, los buses pueden resultar fuertemente sobrecargados, por tanto el bus deteriora el rendimiento de los
dispositivos y del sistema completo.
Examinaremos algoritmos de arbitraje que controlan el acceso al bus de los dispositivos que lo solicitan:
a) Algoritmo de Prioridad Esttica: mucho buses digitales utilizados en la actualidad asignan prioridades
estticas nicas a los dispositivos solicitantes. Cuando varios dispositivos piden al mismo tiempo el uso del bus, el
dispositivo con ms alta prioridad obtiene el acceso. Esto se utiliza normalmente utilizando un esquema
denominado encadenamiento margarita, en el que a todos los servicios se le asignan prioridades de acuerdo a su
localizacin a lo largo de la lnea de control de concesin del bus. Al dispositivo mas proximo al controlador del
Bus se le asigna la prioridad mas alta, figura "7"

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 15/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

Figura "7". Implementacin del encadenado mariposa esttico de un bus de un sistema


b) Algoritmo de Intervalo Fijo de Tiempo: este divide el ancho de banda disponible en unidades de tiempo de
longitud fija que se asigna a cada dispositivo en forma rotatoria. Si un dispositivo no usa su tiempo este se pierde
para los dems. Esta tcnica denominada asignacin fija de tiempo FTS) o multiplexacion por divisin en el tiempo
(TMD), se usa en el enlace de comunicaciones en paralelo de Digital que tambin permite una asignacin flexible
de tiempo disponible a los dispositivos.
c) Algoritmo de Prioridad dinmica: estos permiten conseguir la caracterstica de equilibrado de carga de los
algoritmos simtricos, tales como el FTS, sin tener elevados tiempos de espera. A los dispositivos se le asignan
prioridades nicas para acceder al bus, pero estas prioridades son cambiadas para que cada dispositivo pueda
acceder al bus. Si el algoritmo que se usa para las permutaciones de las prioridades no favorece dispositivos
individuales (es simtrico), entonces la carga del sistema equilibra las peticiones del bus. Adems utilizando las
prioridades se supera la ineficiencia en el esquema FTS de asignar intervalos de tiempo completo a los
dispositivos antes de colocar la peticin.
d) Algoritmo primero que llega, primero que se sirve (FCFS): en el esquema se respeta el orden de recepcin
de las peticiones, este esquema es simtrico porque no favorece ningn procesador particular ni dispositivo en el
bus; por tanto equilibra las peticiones de bus. En esencia FCFS es el algoritmo ptimo de arbitraje del bus.
Pero FCFS es difcil de implementar por al menos 2 razones. Cualquier implementacin de FCFS, a diferencia de
los algoritmos precedentes, debe proporcionar un mecanismo para memorizar el orden de llegada de todas las
peticiones de bus pendientes; pero ms importante siempre es posible que dos peticiones lleguen dentro de un
intervalo suficientemente pequeo para que su orden relativo no se pueda distinguir correctamente.
Otras dos tcnicas utilizadas en los algoritmos de control de bus son el sondeo (polling) y la peticin
independiente. En un controlador de bus que se usa sondeo, la seal de concesin del Bus (BGT) de la
implementacin del encadenamiento mariposa esttica se sustituye por un conjunto de lneas de sondeo, ver
figura 8.

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 16/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

Figura "8". La unidad de control del bus finaliza el sondeo y el dispositivo D accede al bus. El acceso se mantiene
hasta que el dispositivo pone en baja la lnea SACK.

*
*
Conmutador de barras cruzadas y memorias multipuesto.
Si se incrementa el nmero de buses en tiempo compartido de un sistema, se alcanza un punto en el que hay un
camino disponible para cada unidad de memoria, ver figura 9. La red de interconexin se denomina entonces
barras cruzadas sin bloqueo. El conmutador posee una conectividad completa con respecto a los modulo de
memoria porque hay un bus separado asociado con cada mdulo de memoria. As el numero mximo de
transferencias que pueden tener lugar simultneamente esta limitado ms por el numero de mdulos de memoria
y el producto ancho de banda-velocidad de los buses que el nmero de caminos disponibles.

Figura "9". (Cortesa de ACM computing Surveys, Enslow, 1977)

Las caractersticas importantes de un sistema que utiliza una matriz de interconexin de barras cruzadas son la
simplicidad extrema de las interfaces conmutador-unidad funcional y la posibilidad de soportar transferencias
simultneas para todas las unidades de memoria. Cada lugar de cruce no solo debe ser capaz de conmutar
transmisiones paralelas, sino tambin de resolver las mltiples peticiones de acceso al mismo mdulo que ocurren
durante un ciclo de memoria. Estas peticiones conflictivas se manejan normalmente sobre una base de prioridad
predeterminada. El resultado de la inclusin de este tipo de capacidad es que el hardware necesario para
implementar el conmutador puede llegar a ser bastante grande y complejo.
En un dispositivo multipuesto los conflictos ocurren cuando 2 o ms peticiones concurrentes se realizan sobre el
mismo dispositivo destino. La figura 10 muestra un ejemplo de diseo funcional de un elemento del conmutador
de barras cruzadas o memoria multipuesto para un mdulo. Cada procesador genera una seal de peticin de
mdulo de memoria (REQ) a la unidad arbitraje, la cual selecciona el procesador con ms alta prioridad., esta
seleccion se hace con un codificador de prioridad. El mdulo de arbitraje devuelta una seas de reconocimiento
(ACK) al procesador seleccionado, despus que le procesador recibe la seal ACK inicia su operacin de
memoria.

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 17/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

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.

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

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 18/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

cruzadas se distribuyen en los interfaces de los mdulos de memoria, resulta un sistema de memoria multipuesto
como en la Figura 12

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.

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.

*
*
Comparacin de 3 organizaciones Hardware multiprocesador.

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 19/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

Multiprocesadores con Bus de tiempo compartido:


1. Coste del hardware del sistema mas bajo y menos complejo.
2. Muy fcil de modificar fsicamente la configuracin del sistema hardware aadiendo o eliminando unidades
funcionales.
3. Capacidad del sistema total limitada por la razn de transferencia del bus.
4. La expansin del sistema aadiendo unidades funcionales puede degradar el rendimiento total del sistema.
5. La eficiencia alcanzable del sistema es la mas baja de los 3 sistemas bsicos de interconexin.
6. Esta organizacin es normalmente apropiada solo para los sistemas ms pequeos.

Microprocesadores con Conmutador de barras cruzadas:


1. Es el sistema de conexin ms complejo. Tiene capacidad para alcanzar la razn ms alta de transferencia
total.
2. Las unidades funcionales son las ms simples y ms baratas puesto que el control y la lgica de
conmutacin se encuentran en el conmutador.
3. Puesto que se requiere una matriz de conmutacin bsica para ensamblar las unidades funcionales en una
configuracin de trabajo esta organizacin es normalmente de coste-efectivo solo para multiprocesadores.
4. La expansin de los sistemas normalmente mejora el rendimiento del sistema. Existe la ms alta capacidad
para eficiencia del sistema, as como para la expansin del sistema sin reprogramacin del sistema
operativo.
5. Tericamente, la expansin del sistema esta limitada solo por la medida de la matriz del conmutador, que
puede con frecuencia expandirse modularmente dentro del diseo modular u otras limitaciones tcnicas.
6. La fiabilidad del conmutador, y por tanto la del sistema, se puede mejorar por segmentacin y/o
redundancia dentro del conmutador.

Multiprocesadores con Memoria Multipuerto:


1. Requiere las unidades de memorias ms caras puestos que la mayor parte de la circuitera de control y
conmutacin esta incluida en la unidad de memoria.
2. Las caractersticas de las unidades funcionales permiten a un mono procesador de coste bajo ser
ensamblado desde ella.
3. Existe capacidad para una razn de transferencia total muy alta en el sistema completo.
4. El tamao y opciones de configuracin posibles estn determinadas por el nmero y tipo de los puertos de
memoria disponibles.
5. Se requiere un gran nmero de cables y conectores.

1.9. TIPOS DE SISTEMAS OPERATIVOS MULTIPROCESADOR

Existe poca diferencia conceptual entre las necesidades de un sistema operativo de un multiprocesador y las de
un gran computador que utilice multiprogramacin. Sin embargo, existe una complejidad adicional en el sistema
operativo cuando mltiples procesadores han de trabajar simultneamente. La complejidad tambin se origina por
la necesidad de que el sistema operativo tenga que soportar mltiples tareas asncronas que se ejecutan
concurrentemente.
Entre las capacidades funcionales que se necesitan frecuentemente en un sistema operativo para un computador
multiprogramado se encuentran los esquemas de asignacin y administracin de recursos, la proteccin de
memoria y conjuntos de datos, la prevencin de bloqueos en el sistema y la terminacin anormal de procesos o el
manejo de excepciones. Adems de estas capacidades, un sistema multiprocesador tambin necesita tcnicas
para la utilizacin eficiente de recursos y por consiguiente, debe proporcionar esquemas de entrada-salida y
equilibrado de carga del procesador. Una de las principales razones para utilizar un sistema multiprocesador

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 20/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

estriba en proporcionar una fiabilidad efectiva y una degradacin ordenada (graceful degradacin) cuando ocurre
un fallo. Por tanto, el sistema operativo tambin debe ser capaz de proporcionar esquemas de reconfiguracin del
sistema para soportar degradacin ordenada. Un sistema operativo que se comporte pobremente negar otras
ventajas que estn asociadas al multiprocesamiento. Por tanto, es de la mayor importancia que el sistema
operativo para un multiprocesador se disee eficientemente.
La influencia de un gran nmero de procesadores sobre el diseo de un sistema operativo es todava un problema
de investigacin. La modularidad de los procesadores y la estructura de la interconexin entre ellos afectan al
desarrollo del sistema. Adems, los esquemas de comunicacin, los mecanismos de sincronizacin y las polticas
de ubicacin y asignacin dominan la eficiencia del sistema operativo.
Existen bsicamente tres organizaciones que se han utilizado en el diseo de sistemas operativos para
multiprocesadores, a saber: configuracin maestro-subordinado, supervisor separado para cada procesador
y control supervisor flotante.
En un modo maestro-subordinado, un procesador, denominado el maestro, mantiene el estado de todos los
procesadores del sistema y distribuye el trabajo entre todos los procesadores subordinados.
Puesto que la rutina supervisora siempre se ejecuta en el mismo procesador, una peticin del subordinado
mediante un desvo (trap) o una instruccin de llamada al supervisor para un servicio ejecutivo, debe ser enviada
al maestro, que reconoce la peticin y realiza el servicio apropiado. Existen otras caractersticas del sistema
operativo maestro-subordinado. Los conflictos de tablas y los problemas de bloqueo (lock-out) en las tablas de
control del sistema se simplifican al obligar a que el ejecutivo corra sobre un nico procesador. Sin embargo, este
modo del sistema operativo provoca que todo el sistema sea muy susceptible a fallos catastrficos que requieren
la intervencin del operador para arrancar el procesador maestro cuando ocurre un error irrecuperable. Adems
de la inflexibilidad a nivel del sistema completo, la utilizacin del procesador subordinado puede llegar a ser
apreciablemente baja si el maestro no puede distribuir procesos lo suficientemente rpido para mantener
ocupados a los subordinados. El modo maestro-subordinado es ms efectivo para aplicaciones especiales donde
la carga de trabajo est bien definida o para sistemas asimtricos en los que los subordinados tienen menos
capacidad que el procesador maestro. Este es el modo a veces utilizado si existen pocos procesadores
involucrados.
Cuando hay un sistema supervisor separado [ncleo (kernel) el sistemas maestro-subordinado tiene un sistema
distinto con respecto a las caractersticas de un sistema operativo. Se trata de algo similar al pensar en las redes
de computadores, donde cada procesador contiene una copia de un ncleo bsico. Al compartir los recursos
ocurre a un nivel ms alto, por ejemplo, a travs de una estructura compartida de archivos. Cada procesador sirve
sus propias necesidades. Sin embargo, ya que existen efectos entre los procesadores, es necesario que parte del
cdigo supervisor sea reentrante o duplicado para proporcionar copias separadas a cada procesador. Esto crea
problemas de acceso a las tablas.
Desafortunadamente, la copia del ncleo en los procesadores podra necesitar mucha memoria que pudiera
quedar desutilizada, especialmente cuando se compara con la utilizacin de las estructuras de datos compartidas.
En este sistema no se pueden evitar los problemas de acceso a las tablas y los atrasos de bloqueo de las mismas.
Es importante controlar estos accesos de tal manera que quede protegida la integridad del sistema. Adems,
proporciona una mejora verdadera y hace el uso ms eficiente de los recursos disponibles.
No obstante, la mayor parte de los sistemas operativos no son ejemplos propios de alguna de las tres clases que
acabamos de decrselos. La nica generalizacin posible es que el primer sistema que se produce es
normalmente de tipo maestro-subordinado y el ltimo pretende ser el control supervisor flotante. En la tabla
siguiente resumimos las principales caractersticas, ventajas y problemas de los tres tipos de sistemas operativos
para multiprocesadores.

*
*
Configuraciones de sistemas operativos para multiprocesadores.

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 21/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

Sistemas operativos en maestro-subordinado:

1. La rutina ejecutiva siempre se ejecuta en el mismo procesador. Si el subordinado necesita servicio que deba
proporcionar el supervisor, debe pedido y esperar hasta que el programa actual sobre el procesador maestro sea
interrumpido y que entre en accin el supervisor. El supervisor y las rutinas que usa no tienen que ser entrantes,
ya que hay solamente un procesador que las utiliza.
2. Tener un nico procesador ejecutando el supervisor simplifica los problemas de conflicto y bloqueo en el control
de tablas. El sistema completo es comparativamente inflexible. Este tipo de sistema necesita comparativamente
software y hardware simples.
3. El sistema completo est sujeto a fallos catastrficos que requieren la intervencin del operador para
reinicializarlo cuando el procesador diseado como maestro tiene un fallo o un error irrecuperable.
4. El tiempo de desocupacin del sistema subordinado puede aumentar y llegar a ser bastante apreciable si el
maestro no puede ejecutar las rutinas de distribucin (dispatching) con la velocidad suficiente para mantener
ocupado(s) a el(los) subordinados(s).
5. Este tipo de sistema operativo es mas efectivo para aplicaciones especiales donde la carga de trabajo est bien
definida o para sistemas asimtricos en los que los subordinados tienen menos capacidad que el procesador
maestro.

Supervisor separado por cada procesador:


1. Cada procesador se sirve sus propias necesidades. En efecto, cada procesador (supervisor) tiene su propio
conjunto de equipos de E/S, archivos, etc.
2. Es necesario que parte del cdigo supervisor sea reentrante o duplicado para proporcionar copias separadas a
cada procesador.
3. Cada procesador (realmente cada supervisor) tiene su propio conjunto de tablas privadas, aun que algunas
tablas deben ser comunes para el sistema entero, lo que crea problemas de control de acceso a las tablas.
4. El sistema operativo de supervisor separado es tan sensible como el maestro-subordinado; sin embargo. La
reinicializacin de un procesador individual que ha fallado ser probablemente bastante difcil.
5. Debido al punto anterior, la reconfiguracin de la E/S normalmente requiere intervencin manual y posiblemente
conmutacin manual.

Sistema Operativo de supervisor flotante


1. El maestro flota de un procesador a otro, aunque varios procesadores pueden calar ejecutando rutinas de
servicio del supervisor al mismo tiempo.
2. Este tipo de sistema puede lograr mejor balance de carga sobre todo tipo de recursos.
3. Los conflictos en las peticiones de servicios se resuelven por prioridades que pueden ser estticas o dinmicas.
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.

1.10. REQUISITOS DE SOFTWARE PARA MULTIPROCESADORES

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.
https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 22/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

1.11. REQUISITOS DE LOS SISTEMAS OPERATIVOS

Un sistema operativo multiprocesador gestiona los recursos disponibles y acrecienta la funcionalidad hardware
para formar una abstraccin que facilite la ejecucin de programas y la interaccin con los usuarios. Los tres tipos
bsicos de recursos que necesitan ser gestionados son:
Procesadores
Memoria
Dispositivos de E/S

1.11.1. Planificacin De Procesadores

La planificacin de procesadores es crucial para el uso efectivo de los multiprocesadores. Las principales tareas
de un planificador multiprocesador son:
Asignar los procesadores a las aplicaciones de manera consistente con los objetivos del diseo del sistema.
Asegurar el uso eficiente de los procesadores asignados a una aplicacin.
Las dos facetas principales del soporte de SO para multiprocesamiento son:
Mecanismos de sincorinizacin flexibles y eficientes entre procesadores y entre procesos.
Creacin y gestin eficiente de un gran nmero de hebras de actividad, tales como procesos o hebras.

1.11.2. Gestin de Memoria

La Gestin de Memoria en multiprocesadores es altamente dependiente de la arquitectura y del esquema de


interconexin subyacentes. La memoria en sistemas dbilmente acoplados se gestiona generalmente de forma
independiente, procesador a procesador. En sistemas de memoria compartida, el sistema operativo debera
proporcionar un modelo flexible de memoria que facilite al acceso seguro y eficiente a estructuras de datos
compartidas y a variables de sincronizacin. Idealmente un sistema operativo multiprocesador debera
proporcionar un modelo unificado de la memoria compartida, independiente del hardware, para facilitar el
transporte de las aplicaciones entre diferentes entornos multiprocesadores. La memoria compartida puede ser
simulada en sistemas dbilmente acoplados por medio de un mecanismo de paso de mensajes. Y a la inversa,
el paso de mensajes puede ser eficientemente implementando en sistemas fuertemente acoplados apoyndose
en la memoria fsicamente compartida. Tal modelo unificado de memoria, formado por mensajes y memoria
compartida, proporciona un modelo flexible y un conjunto de herramientas para los programadores de
aplicacin.

1.11.3. Gestin de Dispositivos

La Gestin de Dispositivos ha recibido poca atencin en los sistemas multiprocesador hasta la fecha. En
parte se debe a que inicialmente a la atencin se ha centrado en la ganancia de velocidad para aplicaciones
intensivas en clculo que tienden a estar ejecutndose durante extensos periodos de tiempo y no generan
demasiada E/S tras la carga inicial. Sin embargo, conforme los multiprocesadores se apliquen a aplicaciones
ms equilibradas de propsito general, cabe esperar que sus necesidades de E/S aumenten en proporcin con
la productividad y la ganancia de velocidad conseguida. Los trabajos sobre arrays de disco (Katz et al., 1989)
abordan algunos de estos problemas, pero ser necesario investigar muchas otras nuevas tcnicas
innovadoras para obtener un rendimiento significativamente creciente utilizando dispositivos de E/S cuyas

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 23/24
13/8/2017 SOMultiprocesador-y-Distribuidos - Sistemas Operativos de Multiprocesador

velocidades individuales permanecen esencialmente inalteradas. Es razonable esperar que la aplicacin de


tcnicas de multiprocesamiento a la E/S y hacerlos funcionar en paralelo, produzca buenos resultados.
En general los objetivos bsicos de un sistema operativo consisten en proporcionar al programador una interfaz
(entorno) con la mquina, manejo de recursos, mecanismos para implementar polticas (definibles por el
usuario) y facilitar el afuste de las aplicaciones con la mquina. Tambin debe ayudar a conseguir fiabilidad.
Pero estos y otros atributos deseables suponen un coste que puede ser inaceptable. Se pueden establecer
unas directrices, para compaginar el rendimiento y los atributos deseables. Tambin se deber determinar el
grado de transparencia de la mquina detallada que se deber poner a disposicin del programador.
Hay diferentes niveles de interaccin en la especificacin de un sistema operativos para multiprocesamiento.
Los procesos supervisores asncronos comparten la especificacin de la administracin del espacio de
direcciones, administracin de procesos y niveles de sincronizacin. Los sistemas operativos eficientes se
disean para que tengan una estructura modular y una organizacin jerrquica. Las funciones clsicas de un
sistema operativo incluyen la creacin de objetos tales como procesos sus dominios, que incluye los
segmentos de memoria. Los procesos de comunicacin deben tener lugar a travs de variables compartidas o
globales. Los procesos cooperantes deben se deben comunicar para sincronizar o limitar su concurrencia.
En sistemas con mltiples procesos concurrentes, la presencia de recursos tales como unidades de registro
perifricas y unidades de cinta que no se deben utilizar simultneamente por varios procesos introduce la
necesidad de acceso exclusivo a estos dispositivos.
La comparticion de los mltiples procesadores se puede conseguir colocando los diferentes procesos juntos en
memoria compartida y proporcionando un mecanismo para conmutar rpidamente la atencin de un procesador
de proceso a otro. Esta operacin se denomina a menudo Conmutacin de contexto. La comparticion de los
procesos introduce tres problemas subordinados:
La proteccin de los recursos de un proceso contra daos intencionados o accidentales por parte de otros
procesos.
La provisin de comunicacin entre procesos y entre procesos de usuario y procesos del supervisor.
La asignacin de recursos entre procesos para que se pueda siempre satisfacer la demanda de recursos.

Contributions to https://somultiprocesador-y-distribuidos.wikispaces.com/ are licensed under a Creative Commons


Attribution Share-Alike 3.0 License.
Portions not contributed by visitors are Copyright 2017 Tangient LLC
TES: The largest network of teachers in the world

https://somultiprocesador-y-distribuidos.wikispaces.com/Sistemas+Operativos+de+Multiprocesador?f=print 24/24