Sunteți pe pagina 1din 7

IS-344

Sistemas Operativos
Ingeniera de Sistemas

SISTEMAS OPERATIVOS CON MLTIPLES


PROCESADORES

Captulo VII

Desde que naci, la industria de las computadoras ha sido impulsada por una incesante bsqueda de cada
vez ms potencia de cmputo. Los astrnomos estn tratando de entender el universo, los bilogos estn
tratando de entender las implicaciones del genoma humano y los ingenieros en aeronutica quieren
construir aviones ms seguros y eficientes, y todos quieren ms ciclos de CPU. Por ms potencia de
cmputo que haya, nunca es suficiente.
1. Multiprocesadores y Sistemas Distribuidos
Clasificacin para los sistemas con varios procesadores (Flynn, 1972) basado en cmo la mquina
relaciona sus instrucciones con los datos que tiene que procesar.
1) SISD (Single Instruction Single Data). Un solo flujo de instruccin, un solo flujo de datos.
Computadores con un nico procesador.
2) SIMD (Single Instruction Multiple Data). Un solo flujo de instrucciones, varios flujos de datos.
Procesadores vectoriales y computadores en array en los que una sola instruccin se ejecuta sobre varios
datos.
3) MISD (Multiple Instruction Multiple Data). Flujo de varias instrucciones, un solo flujo de datos. Ningn
computador se ajusta a este tipo.
4) MIMD (Multiple Instruction Multiple Data). Flujo de varias instrucciones, flujo de varios datos. Grupo
de computadores independientes, cada uno con su propio contador de programa, programa y datos.
Todos los SO distribuidos pertenecen a este grupo. Segn la conexin entre los procesadores, se pueden
considerar:
a) Sistemas fuertemente acoplados. Los procesadores comparten la memoria y el reloj. Son
sistemas multiprocesadores y la comunicacin generalmente se hace a travs de la memoria
compartida.
b) Sistemas dbilmente acoplados. Los procesadores no comparten la memoria ni el reloj y cada
uno tiene su propia memoria local. Se comunican mediante redes locales o de rea extensa. Son los
sistemas distribuidos.
Un sistema distribuido proporciona a los usuarios acceso a los distintos recursos hardware y software
controlado por el SO. Esquemas bsicos:
b.1) Sistemas operativos de red. Los usuarios estn enterados de la multiplicidad de mquinas y
para acceder a sus recursos necesitan conectarse al computador remoto apropiado. Son sistemas
dbilmente acoplados tanto en hardware como en software.
b.2.) Sistemas operativos distribuidos. Los usuarios no necesitan saber que existe una multiplicidad
de mquinas y pueden acceder a los recursos remotos de la misma forma que lo hacen a los recursos
locales. Son sistemas de hardware dbilmente acoplado, pero de software fuertemente acoplados.
2. Ventajas e inconvenientes de los sistemas distribuidos
2.1. Ventajas
Frente a los sistemas centralizados.
1) Ahorro econmico al mejorar la relacin precio/rendimiento.
2) Mayor potencia de clculo
3) Mejor adaptacin a sistemas y aplicaciones inherentemente distribuidos (cadenas de produccin,
sucursales bancarias, etc.).
4) Mayor fiabilidad. Un fallo en un procesador afectar como mucho a una mquina.
5) Posibilidad de crecer incrementalmente segn las necesidades.
Frente a los computadores personales.
1) Mayor flexibilidad, al permitir distribuir la carga de trabajo. La puesta fuera de servicio de uno de
ellos se puede compensar haciendo su trabajo en los restantes.
2) Comparticin de datos y programas.
UNSCH/QECM

Pgina 1 de 7

IS-344

Sistemas Operativos
Ingeniera de Sistemas

Captulo VII

3) Comparticin de perifricos, unidades de almacenamiento o impresoras.


2.2. Desventajas
1) Escaso software, todava no muy desarrollado.
2) Problemas inherentes a las redes: posible saturacin o prdida de informacin.
3) Se agravan los problemas de seguridad.
3. Multiprocesadores
Un multiprocesador de memoria compartida (que llamaremos slo multiprocesador) es un sistema de
cmputo en el que dos o ms CPUs comparten pleno acceso a una RAM comn. Un programa que se
ejecuta en cualquiera de las CPUs ve un espacio de direcciones virtual normal (por lo regular paginado).
La nica propiedad inusitada de este sistema es que la CPU puede escribir algn valor en una palabra de
la memoria, leer despus esa palabra y obtener un valor distinto (porque otra CPU lo modific). Con la
organizacin correcta, esta propiedad constituye la base de la comunicacin entre procesadores: una
CPU escribe datos en la memoria y otra los lee.
En esencia, los sistemas operativos para multiprocesador son sistemas operativos normales: manejan
llamadas al sistema, administran memoria, proporcionan un sistema de archivos y administran
dispositivos de E/S. No obstante, hay ciertas reas en que tienen caractersticas nicas. Estas incluyen la
sincronizacin de procesos, la administracin de recursos y la calendarizacin.
3.1. Clases de sistemas operativos para multiprocesadores
Cada CPU tiene su propio SO - Sistemas con supervisores separados
La forma ms sencilla de organizar un SO de multiprocesador consiste en dividir en forma esttica la
memoria en tantas particiones como procesadores haya y proporcionar a cada CPU su propia memoria
privada y su propia copia privada del SO. En efecto, los n procesadores operarn como n computadoras
independientes. Una optimizacin obvia sera permitir a todas las CPUS compartir el cdigo del SO y
hacer copias privadas nicamente de los datos, como se muestra en la figura
CPU 1

CPU 2

CPU 3

CPU 4

Tiene
SO
privado

Tiene
SO
privado

Tiene
SO
privado

Tiene
SO
privado

Memoria

E/S

1
2
datos
datos
3
4
datos
datos
Cdigo SO

bus
Divisin de la memoria del multiprocesador entre cuatro CPUs que comparten una sola copia del cdigo del SO. Los cuadros
marcados como Datos con los datos privados del SO para cada CPU

Este esquema es mejor an que tener n computadoras individuales porque permite a todas las mquinas
compartir un conjunto de discos y otros dispositivos de E/S, as como compartir de manera flexible la
memoria. Adems los procesos pueden comunicarse entre s de manera eficiente. No obstante, desde el
punto de vista del SO, dar a cada CPU su propio SO es una solucin de lo ms primitiva.
Vale la pena mencionar algunos problemas en este modelo, tales como: cada CPU con su SO tiene sus
propias tablas, su propio conjunto de procesos, no comparten pginas y problemas como el manejo de la
cach, y cuyo manejo genera complicaciones en el sistema. Este modelo ya casi no se usa, aunque slo se
us en los inicios de los multiprocesadores.
Multiprocesadores Amo/esclavo -Sistemas maestro/esclavos
Un segundo modelo se muestra en la siguiente figura. Aqu hay una copia del SO y de sus tablas en la
CPU1, pero no en las dems. Todas las llamadas al sistema se redirigen a la CPU1, donde ser procesan.
Esta CPU tambin podra ejecutar procesos de usuario si le sobra tiempo. Se conoce como amo-esclavo
porque el procesador 1 es el amo y todos los dems son sus esclavos.

UNSCH/QECM

Pgina 2 de 7

IS-344

Sistemas Operativos
Ingeniera de Sistemas

Captulo VII

Este modelo resuelve casi todos los problemas del primer modelo; sin embargo surge otro cuando hay
muchas CPUs, el amo se convertir en el cuello de botella. Despus de todo tiene que manejar las
llamadas al sistema de todas las CPUs. Por tanto este modelo es sencillo y prctico en multiprocesadores
pequeos, pero falla en los grandes
CPU 1

CPU 2

CPU 3

CPU 4

Amo
Ejecuta
SO

Esclavo
Ejecuta
procesos
de
usuario

Esclavo
Ejecuta
procesos
de
usuario

Esclavo
Ejecuta
procesos
de
usuario

Memoria

E/S

Procesos de
usuario
SO

bus
Modelo de multiprocesador amo-esclavo

Multiprocesadores simtricos (SMP)


Hay una copia del SO en la memoria, pero cualquier CPU puede ejecutarla. Cuando se emite una llamada
al sistema, la CPU en la que se emiti salta al kernel y procesa dicha llamada
CPU 1
Ejecuta
usuarios y
SO
compartido

CPU 2
Ejecuta
usuarios y
SO
compartido

CPU 3

CPU 4

Ejecuta
usuarios y
SO
compartido

Ejecuta
usuarios y
SO
compartido

bus

Memoria

E/S

SO

bloqueos

Modelo de multiprocesador SMP

Este modelo balancea los procesos u la memoria en forma dinmica, puesto que slo hay un conjunto de
tablas del SO. Tambin elimina el cuello de botella del procesador amo, ya que no existe el amo, pero
introduce sus propios problemas. En particular si 2 o ms CPUs estn ejecutando cdigo del SO al mismo
tiempo, el resultado ser un desastre. Imaginemos que dos CPUs escogen de forma simultnea el mismo
proceso para ejecutar, o se aduean al mismo tiempo de la misma pgina de memoria libre. La forma
ms sencilla de resolver estos problemas es asociar un mutex (osea un bloqueo) al SO, convirtiendo as a
todo el sistemas en una gran regin crtica. Cuando una CPU quiera ejecutar cdigo del SO, primero
deber adquirir el mutex. Si el mutex est bloqueado, la CPU tan solo esperar. As cualquier CPU podr
ejecutar el SO, pero no ser posible que dos lo hagan al mismo tiempo.
Sin embargo se debe sealar que an este modelo no es la solucin final por los riesgos propios generados
por el uso de bloqueos: esto es, bloqueos irreversibles entre otros; adems de que los programas de
usuario se van modificando con el tiempo, con nuevas solicitudes y requerimientos.
4. Multicomputadoras
Los multiprocesadores son populares y atractivo porque ofrecen un modelo de comunicacin sencillo:
todas las CPUs comparten la misma memoria. Los procesos pueden escribir mensajes en la memoria, y
otros procesos pueden leer estos mensajes. La sincronizacin puede efectuarse empleando mutexes,
semforos, monitores y otras tcnicas bien establecidas. El nico problema es que construir
multiprocesadores grandes es difcil, y por lo tanto su costo es elevado.
Para superar estos problemas. Se han estudiado mucho las multicomputadoras, que son CPUs
fuertemente acopladas que no comparten memoria. Cada una tiene su propia memoria. Estos sistemas
tambin se conocen con muchos otros nombres como: computadoras agrupadas y agrupamiento de
estaciones de trabajo(COWS).
Las multicomputadoras son fciles de construir porque el componente bsico no es ms que una PC sin
componentes superfluos y con una tarjeta de interfaz de red. Desde luego, el secreto para lograr un buen
UNSCH/QECM

Pgina 3 de 7

Sistemas Operativos
Ingeniera de Sistemas

IS-344
Captulo VII

desempeo es disear de forma ingeniosa la red de interconexin y la tarjeta de interfaz. Este problema
es anlogo por completo a construir la memoria compartida en un multiprocesador. Sin embargo, la meta
es enviar mensajes en una escala de tiempo de microsegundos, en lugar de acceder a la memoria en una
escala de tiempo de nanosegundos, y esto es ms sencillo, econmico y fcil de lograr.
Los procesos que se ejecutan en diferentes CPUs de una multicomputadora se comunican envindose
mensajes. En su forma ms sencilla, esta transferencia de mensajes est a la vista de los procesos de
usuario. Dicho de otro modo, el SO ofrece un mecanismo para envir y recibir mensajes, y los
procedimientos de biblioteca ponen esas llamadas subyacentes a disposicin de los procesos de usuario.
En una forma ms avanzada, la transferencia de mensajes en s se oculta a los usuarios, haciendo que la
comunicacin remota parezca una llamada a un procedimiento.
5. Sistemas distribuidos
Habiendo concluido nuestro estudio de los multiprocesadores y las multicomputadoras, llega el momento
de abordar el tercer tipo de sistema con mltiples procesadores, el sistema distribuido. Estos sistemas
son similares a las multicomputadoras en cuanto a que cada nodo tiene su propia memoria privada, sin
memoria fsica compartida en el sistema. Sin embargo, los sistemas distribuidos estn acoplados con ms
debilidad an que las multicomputadoras
Los nodos de una multicomputadora por lo regular tienen una CPU, RAM, una interfaz de red y tal vez un
disco duro para paginar. En contraste, cada nodo de un sistema distribuido es una computadora
completa, con un surtido completo de perifricos. Adems, los nodos de una multicomputadora
generalmente estn en un mismo recinto para poder comunicarse por medio de una red dedicada de alta
velocidad, mientras que los nodos de un sistema distribuido podran estar dispersos por el mundo. Por
ltimo, todos los nodos de una multicomputadora ejecutan el mismo SO, comparten un mismo sistema de
archivos y estn sometidos a una administracin comn, mientras que los nodos de un sistema distribuido
podran ejecutar SO distintos, cada uno tiene su propio sistema de archivos y estn bajos distintas
administraciones.
El acoplamiento dbil de las computadoras en un sistema distribuido es tanto una ventaja como una
desventaja. Ventaja porque las computadoras pueden utilizarse para una gran variedad de aplicaciones,
pero es desventaja porque la programacin de esas aplicaciones se dificulta por falta de un modelo
subyacente comn.
Entre las aplicaciones de Internet tpicas estn el acceso a computadoras remotas (empelando telnet o
rlogin), el acceso a informacin remota (utilizando World Wide web y FTP, el protocolo de transferencia
de archivos), la comunicacin persona a persona (mediante correo electrnico y programas de
conversacin) y muchas aplicaciones que estn surgiendo (pro ejemplo comercio electrnico,
telemedicina y aprendizaje a distancia). El problema con todas estas aplicaciones es que cada una tiene
que volver a inventar al rueda. Por ejemplo, la funcin bsica del WWW como del FTP es transferir
archivos del punto A al punto B, pero cada uno tiene su propia forma de hacerlo, con sus propias
convenciones, sus propios protocolos de transferencia, etc. Aunque muchos de los navegadores Web
ocultan estas diferencias para que el usuario comn no las perciba, los mecanismos subyacentes son
distintos por completo.
Lo que los sistemas distribuidos aaden a la red subyacente es un paradigma (modelo) comn que ofrece
una manera uniforme de ver todo el sistema. La intencin del sistema distribuido es convertir un grupo
de mquinas dbilmente conectadas en un sistema coherente basado en un solo concepto. La idea es
proporcional algo que unifique el sistema.
Una forma en que un sistema distribuido puede lograr cierto grado de uniformidad, pese al hecho de que
el hardware y los SOs subyacentes sean distintos, es aadiendo una capa de software por arriba del SO.
Esta capa, llamada middleware, se ilustra n la siguiente figura.

UNSCH/QECM

Pgina 4 de 7

IS-344

Sistemas Operativos
Ingeniera de Sistemas

Captulo VII

Base comn para las aplicaciones


Aplicacin

Aplicacin

Aplicacin

Aplicacin

Middleware

Middleware

Middleware

Middleware

Windows

Linux

Solaris

Mac OS

Pentium

Pentium

SPARC

Macintosh

red

Ubicacin del Middleware en un sistema distribuido


La capa proporciona ciertas estructuras de datos y operaciones que permiten a procesos y usuarios de
mquinas muy dispersas interoperar de forma consistente.
En cierto sentido, el middleware es algo as como el SO de un sistema distribuido. Es por ello que ahora
como otros autores lo mencionamos. Sin embargo, no es un sistema operativo, por loque no entraremos
en demasiados detalles.
5.1 Consideraciones en un sistema distribuido
Los usuarios pueden acceder a los recursos remotos de la misma manera que lo hacen a los recursos
locales. La migracin de datos y procesos de una mquina a otra queda bajo el control del SO distribuido.
El SO tiene que hacer tres funciones transparentes al usuario:
a) Migracin de datos. Posibilidad de transferir datos de una mquina a otra. Hay dos estrategias:
1) Transferir todo el archivo de una instalacin a otra y a partir de ah el acceso a los datos es local.
2) Transferir slo aquellas partes del archivo que realmente se necesitan en ese momento.
b) Migracin de clculos. Dos formas:
1) Mediante una llamada a un procedimiento remoto. Un proceso de una instalacin invoca a otro
procedimiento definido en otra, el cual, despus de ejecutarse, devuelve los resultados.
2) Mediante mensajes. El primer proceso enva un mensaje a la instalacin donde est definido el
proceso que quiere que se ejecute. El SO de esta instalacin arranca el proceso y, cuando termina,
enva el resultado por medio del sistema de mensajes. Los dos procesos pueden ejecutarse
concurrentemente.
c) Migracin de procesos. Un proceso puede comenzarse en una instalacin y continuar en otra.
Razones:
1) Equilibrar las cargas de los sistemas, distribuyendo los procesos.
2) Acelerar los clculos,
concurrentemente.

dividiendo

un

proceso

en

varios

subprocesos

que

se

ejecuten

3) Las caractersticas hardware o software de una instalacin, que haga preferible que cierto proceso
contine su ejecucin en sta.
La migracin se puede hacer:
1) De forma transparente al usuario. Tiene la ventaja de que el usuario no necesita codificar los
programas explcitamente y se suele utilizar para equilibrar las cargas y acelerar los clculos.
2) Requiriendo que el usuario especifique cmo y a dnde debe migrar el proceso. Se emplea cuando el
proceso se debe trasladar por consideraciones hardware o software.
5.2. Algunas consideraciones para el diseo
1) Sistema transparente. Idealmente, un SO distribuido debera percibirse por el usuario como un
sistema nico, sin hacer distincin entre los recursos locales o remotos. Un sistema puede ser
UNSCH/QECM

Pgina 5 de 7

Sistemas Operativos
Ingeniera de Sistemas

IS-344
Captulo VII

transparente slo a los usuarios, a los que oculta la distribucin. Tambin puede ser transparente a los
programas, aunque es ms complicado especificar una semntica bien definida y consistente que adems
coincida con la del SO centralizado base.
La transparencia es aplicable a distintos aspectos:
a) Transparencia de la localizacin. Los usuarios no pueden indicar la situacin de los recursos
hardware y software.
b) Transparencia de migracin. Posibilidad de que los recursos se muevan de una posicin a otra sin
tener que cambiar sus nombres.
c) Transparencia de copia. El sistema puede hacer copia de los archivos sin que lo noten los usuarios.
d) Transparencia con respecto a la concurrencia. Los usuarios no advierten la existencia de otros
usuarios.
e) Transparencia con respecto al paralelismo. El sistema aprovecha las posibilidades de clculo en
paralelo sin que el programador tenga que advertirlo.
2) Flexibilidad. Dos concepciones diferentes:
a) Sistemas con ncleo monoltico. El ncleo corresponde al SO bsico centralizado actual, al que se
le han aadido las capacidades de red y la integracin de los servicios remotos. Suelen ser
extensiones de algn sistema existente, como Unix.
Ventaja: mayor rendimiento, puesto que la realizacin del trabajo en el ncleo es ms rpido que el
envo de mensajes a los servidores remotos.
b) Sistemas basados en un microncleo, con los servicios mnimos, consistentes bsicamente en un
mecanismo de comunicacin entre procesos, una gestin de la memoria, una parte de la planificacin
y gestin de los procesos de bajo nivel y la gestin de E/S a bajo nivel. El resto de los servicios
(sistema de archivos, gestin de los procesos, manejo de las llamadas al sistema, etc.) se
implementan como servidores a nivel de usuario.
Es el mtodo utilizado en la mayora de los diseos que parten de cero.
Ventajas:
o

Son ms flexibles, puesto que hacen relativamente poco trabajo.

Son muy modulares. Permiten instalar y depurar nuevos servicios de forma fcil, puesto que
no es necesario parar el sistema y arrancar otra vez el ncleo.

Fiabilidad. Si una mquina falla, otra se encargar de su trabajo (sistema tolerante a fallos).

Escalabilidad. Capacidad del sistema para adaptarse a un incremento en el servicio. Ante un


aumento de la carga, se debe degradar con mayor moderacin y permitir aadir nuevos
recursos.

La fiabilidad (tolerancia a fallos) y la escalabilidad estn relacionadas entre s, ya que un


sistema con mucha carga puede paralizarse y comportarse como si tuviera un fallo.

RESUMEN
La velocidad y confiabilidad de los sistemas de computacin puede mejorarse utilizando mltiples CPUs.
Tres organizaciones para los sistemas de mltiples CPUs son los multiprocesadores, las
multicomputadoras y los sistemas distribuidos. Cada una tienes sus propiedades y problemas
caractersticos.
Un multiprocesador consiste en dos o ms CPUs que comparten la misma RAM. Estas CPUs pueden estar
conectadas entre s por un bus, un conmutador tipo crossbar o una red de conmutacin multietapas.
Pueden usarse diversas configuraciones de sistema operativo, que incluye, dar a cada CPU su propio
sistema operativo, tener un sistema operativo amo y muchos sistemas operativos esclavos, o tener un
multiprocesador simtrico en que hay una copia del sistema operativo que puede ejecutar cualquier CPU.
En este ltimo caso se necesitan bloqueos para la sincronizacin. Si no hay un bloqueo disponible, la CPU
puede ponerse a dar vueltas o bien efectuar una conmutacin de contexto.
Las multicomputadoras tambin tienen 2 o ms procesadores, pero cada una de estas CPUs tiene su
propia memoria privada. No se comparte una RAM comn, as que toda la comunicacin de efecta
transfiriendo mensajes. En algunos casos, la tarjeta de interfaz de red tiene su propia CPU, lo que hace

UNSCH/QECM

Pgina 6 de 7

IS-344

Sistemas Operativos
Ingeniera de Sistemas

Captulo VII

necesario organizar en forma minuciosa la comunicacin entre la CPU principal y la CPU de la tarjeta de
interfaz para evitar condiciones de competencia.
Los sistemas distribuidos son sistemas dbilmente acoplados en los que cada nodo es una computadora
completa con un surtido completo de perifricos y su propio sistema operativo. Es comn que estos
sistemas abarquen un rea geogrfica extensa. Suele colocarse middleware encima del sistema operativo
para tener una capa uniforme con la que puedan interactuar las aplicaciones. El middleware puede ser
de varios tipos: basado en documentos, basado en archivos, basado en objetos y basado en coordinacin.
Como ejemplos pueden citarse World Wide Web, AFS, CORBA, Globe, Linda y Jini.

Cuadro de comparacin de tres tipos de sistemas con mltiples CPUs


Concepto

Multiprocesador

Multicomputadora

Sistema Distribuido

Configuracin de
nodos

CPU

CPU, RAM, interfaz de red

Computadora completa

Perifricos de
nodos

Todos compartidos

Compartidos exc quiz disco

Surtido completo en c/nodo

Ubicacin

Mismo anaquel

Mismo recinto

Posiblemente global

Comunicacin entre
nodos

RAM compartida

Interconexin dedicada

Red tradicional

Sistemas operativos

Uno, compartido

Mltiples, iguales

Todos pueden ser distintos

Sistemas de
archivos

Uno, compartido

Uno, compartido

Cada nodo tiene el suyo

Administracin

Una organizacin

Una organizacin

Muchas organizaciones

UNSCH/QECM

Pgina 7 de 7

S-ar putea să vă placă și