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