You are on page 1of 7

Sistemas Operativos

Captulo VIII

SISTEMAS OPERATIVOS CON MLTIPLES PROCESADORES

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. 8.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. 8.2 Ventajas e inconvenientes de los sistemas distribuidos 8.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. 3) Comparticin de perifricos, unidades de almacenamiento o impresoras.
rea de Informtica UNSCH/QECM Pgina 1 de 7

Sistemas Operativos

Captulo VIII

8.2.1. 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. 8.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. 8.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 Tiene SO privado CPU 2 Tiene SO privado CPU 3 Tiene SO privado CPU 4 Tiene SO privado Memoria
1 2 datos datos 3 4 datos datos Cdigo SO

E/S

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.
rea de Informtica UNSCH/QECM Pgina 2 de 7

Sistemas Operativos

Captulo VIII

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 Amo Ejecuta SO CPU 2
Esclavo Ejecuta procesos de usuario

CPU 3
Esclavo Ejecuta procesos de usuario

CPU 4
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
Ejecuta usuarios y SO compartido

CPU 4
Ejecuta usuarios y SO compartido

Memoria

E/S

SO

bus Modelo de multiprocesador SMP

bloqueos

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

rea de Informtica UNSCH/QECM

Pgina 3 de 7

Sistemas Operativos

Captulo VIII

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

rea de Informtica UNSCH/QECM

Pgina 4 de 7

Sistemas Operativos

Captulo VIII

Base comn para las aplicaciones Aplicacin Middleware Windows Pentium Aplicacin Middleware Linux Pentium Aplicacin Middleware Solaris SPARC Aplicacin Middleware Mac OS 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. 8.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, dividiendo un proceso en varios subprocesos que se ejecuten concurrentemente. 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.

rea de Informtica UNSCH/QECM

Pgina 5 de 7

Sistemas Operativos

Captulo VIII

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

rea de Informtica UNSCH/QECM

Pgina 6 de 7

Sistemas Operativos

Captulo VIII

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


Configuracin de nodos Perifricos de nodos Ubicacin Comunicacin entre nodos Sistemas operativos Sistemas de archivos Administracin

Multiprocesador CPU Todos compartidos Mismo anaquel RAM compartida Uno, compartido Uno, compartido Una organizacin

Multicomputadora CPU, RAM, interfaz de red


Compartidos exc quiz disco

Sistema Distribuido Computadora completa


Surtido completo en c/nodo

Mismo recinto Interconexin dedicada Mltiples, iguales Uno, compartido Una organizacin

Posiblemente global Red tradicional Todos pueden ser distintos Cada nodo tiene el suyo Muchas organizaciones

rea de Informtica UNSCH/QECM

Pgina 7 de 7

You might also like