Vous êtes sur la page 1sur 34

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 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 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

Estructura_y_componentes_1.JPG
Arquitectura de Multiprocesamiento Simtrico

La interaccin del hilo tiene dos componentes: cmo manejan los hilos la
competicin para los mismos recursos, y cmo se comunican los hilos entre s
mismos.
Cuando dos hilos quieren acceder al mismo recurso, uno de ellos tiene que
esperar. El recurso puede ser un disk drive, un registro en una base de datos
que otro hilo est escribiendo, o cualquier otra innumerable caracterstica del
sistema. Minimizar este retardo es un problema de diseo central para las
instalaciones de hardware y el software que corre. Es generalmente el factor
ms grande en de proporcionar escalabilidad perfecta del funcionamiento de
los sistemas de multiprocesamiento, porque corriendo hilos que nunca
compiten por el mismo recurso es efectivamente imposible.
Un segundo factor es la sincronizacin del hilo. Cuando un programa est
diseado en hilos, hay muchas ocasiones donde los hilos tienen que interactuar
y los puntos de la interaccin requieren control delicado. Por ejemplo, si un hilo
est preparando los datos para que otro hilo procese, los retardos pueden
ocurrir cuando el primer hilo no tiene los datos listos cuando el hilo de proceso
los necesita. Ms ejemplos convincentes ocurren cuando dos hilos necesitan
compartir un rea comn de la memoria. Si ambos hilos pueden escribir a la
misma rea en memoria, entonces el hilo que escribi primero tiene que
comprobar que lo que escribi no se ha sobreescrito, o debe aislar otros hilos
hasta que haya terminado con los datos. Esta administracin de sincronizacin
e inter-hilo es claramente un aspecto que no se beneficia de tener ms
recursos disponibles procesando.

El encabezado del sistema es el manejo del hilo hecho por sistema operativo.
Ms procesadores en funcionamiento, ms sistema operativo tiene que
coordinar. Consecuentemente, cada nuevo procesador agrega
incrementalmente al trabajo de la administracin del sistema operativo. Esto
significa que cada nuevo procesador contribuir cada vez menos al
rendimiento total del sistema.
Un sistema de multiprocesadores debe tener capacidad para gestionar la
reparticin de memoria entre varios procesadores, pero tambin debe distribuir
la carga de trabajo.
Estructura_y_componentes_2.JPG
- Los procesadores no cooperan en la ejecucin de un proceso individual, que
habr sido asignado a uno de ellos.
- Tratamiento Simtrico Es la organizacin ms complicada de implementar y
tambin la ms poderosa y confiable.
- El Sistema Operativo administra un grupo de procesadores idnticos, donde
cualquiera puede utilizar cualquier dispositivo de Entrada / Salida y cualquiera
puede referenciar a cualquier unidad de almacenamiento.
- El Sistema Operativo precisa cdigo reentrarte y exclusin mutua.
- Es posible equilibrar la carga de trabajo ms precisamente que en las otras
organizaciones.
Adquieren significativa importancia el hardware y el software para resolucin
de conflictos. Todos los procesadores pueden cooperar en la ejecucin de un
proceso determinado; El procesador ejecutivo es el responsable (uno slo) en
un momento dado de las tablas y funciones del sistema; as se evitan los
conflictos sobre la informacin global.
El rendimiento que pueda obtenerse en cualquier sistema informtico es
resultado de la combinacin del hardware y del software; y como elemento
radical del software, el sistema operativo. Con la aparicin de mquinas de
propsito general de ms de un procesador, surge la necesidad de adaptar los
sistemas operativos ya existentes para la gestin de un nuevo recurso con
mltiples instancias: el procesador.
Al hablar de sistemas operativos en entornos paralelos, hemos de distinguir
cuidadosamente dos aspectos del trabajo paralelo. Por un lado, el sistema
operativo como gestor de los recursos que utilizan los usuarios, ha de ser
capaz de dar soporte a trabajos paralelos; por ejemplo, que un nico programa
pueda utilizar varios procesadores. Por otro lado, el propio sistema operativo

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

image_(2).JPG
*
*
Caractersticas Generales:
Espacio de direcciones de memoria compartido
Tiempo de acceso uniforme para toda direccin
Hardware bastante simple.
El cuello de botella es el acceso a memoria principal, lo cual implica:
Grandes cachs en cada procesador
El nmero de procesadores no puede ser muy alto. Hoy en da N32.

*
*
Problema de coherencia en UMA:
El overhead por acceder a la memoria compartida es muy grande. Hay que
usar cachs.
Debemos asegurar la coherencia de los datos en dichos dispositivos.
Cuando usamos un dato privado traerlo a cach.

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

image_(3).JPG

Caractersticas Generales:
Espacio de direcciones de memoria compartido.
Tiempo de acceso no uniforme para toda direccin. Depende de si accedemos
a memoria local (no a cach) o a remota.
Debido al incremento de prestaciones del uniprocesador y del AB requerido,
sta es la nica solucin para sistemas con muchos procesadores.
tacc pequeo en accesos a memoria local.

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

image_(4).JPG

Espacio de direcciones de memoria distribuido.


Son compatibles en hardware a los NUMA.
Cada procesador es un computador independiente del resto.
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.
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 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 procesadoresmemoria (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.
image_(5).JPG
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.
image_(6).JPG
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.
image_(7).JPG

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.

image_(8).JPG

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.
image_(9).JPG
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.

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.

image_(10).JPG

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.
image_(11).JPG

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"
image_(12).JPG

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.
image_(13).JPG

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.

image_(14).JPG
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.

image_(15).JPG
Figura "10"
El mdulo mulltiplexor; multiplexa datos, direcciones de palabras dentro del
mdulo y seales de control desde el procesador hasta el mdulo de memoria,
el mismo esta controlado por el nmero codificado del procesador
seleccionado.
Tericamente la expansin del sistema esta limitado slo por la medida de la
matriz del conmutador, que con frecuencia se puede expandir modularmente
dentro del diseo inicial y otras limitaciones de ingeniera.
Para proporcionar la flexibilidad que se requiere en el acceso a los dispositivos
de E/S, una extensin del concepto de conmutador de barras cruzadas consiste
en utilizar un conmutador similar en el lado del dispositivo de E/S o canal,
como se ve en la figura 11. El hardware necesario para la implementacin es
bastante diferente y no tan complejo porque los controladores y dispositivos
estn diseados para reconocer su propia direccin nica.

image_(16).JPG

Figura "11"
El conmutador de barras cruzadas tiene capacidad para obtener el mayor
ancho de banda y eficiencia del sistema. La fiabilidad del mismo es
problemtica; sin embargo se puede mejorar mediante segmentacin y
redundancia dentro del conmutador.
Si el control, la conmutacin y la lgica de arbitraje que distribuidos por toda la
matriz del conmutador de barras cruzadas se distribuyen en los interfaces de
los mdulos de memoria, resulta un sistema de memoria multipuesto como en
la Figura 12
image_(17).JPG

Figura "12"
La flexibilidad para configurar el sistema tambin hace posible designar
porciones de memoria privadas para ciertos procesadores, unidades E/S o
combinacin de ellos, as se ve en la figura 13: en esta organizacin los
mdulos de memoria M0 y M3 son privador para los procesadores P0 y P1.

image_(18).JPG

Figura "13"
La organizacin de memoria multipuerto tambin puede soportar accesos sin
bloqueo a la memoria si se utiliza una topologa completamente conectada.
Es muy difcil justificar el uso de un conmutador de barras cruzadas para
grandes sistemas de multiprocesamiento. La ausencia de un conmutador con
un coste y rendimiento razonables es un o de los motivos que ha impedido el
crecimiento de grandes sistemas multimicroprocesador. El coste elevado del
conmutador se puede evitar utilizando un conmutador con un nmero
restringido de permutaciones posibles.

*
*

Comparacin de 3 organizaciones Hardware multiprocesador.

Multiprocesadores con Bus de tiempo compartido:


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

Microprocesadores con Conmutador de barras cruzadas:


Es el sistema de conexin ms complejo. Tiene capacidad para alcanzar la
razn ms alta de transferencia total.
Las unidades funcionales son las ms simples y ms baratas puesto que el
control y la lgica de conmutacin se encuentran en el conmutador.
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.
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.
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.
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:

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.
Las caractersticas de las unidades funcionales permiten a un mono procesador
de coste bajo ser ensamblado desde ella.
Existe capacidad para una razn de transferencia total muy alta en el sistema
completo.
El tamao y opciones de configuracin posibles estn determinadas por el
nmero y tipo de los puertos de memoria disponibles.
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 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 maestrosubordinado, 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.

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.

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

Vous aimerez peut-être aussi