33
Contenido INTRODUCCIÓN..................................................... 2 ¿QUÉ ES UN SISTEMA DISTRIBUIDO?..................................3 CONCEPTOS DE LOS SISTEMAS DISTRIBUIDOS...........................4 VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS CON RESPECTO DE LOS CENTRALIZADOS.................................................... 7 VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS CON RESPECTO DE LAS PC INDEPENDIENTES................................................... 8 DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS........................9 CONCEPTOS DE HARDWARE........................................... 10 MULTIPROCESADORES CON BASE EN BUSES............................11 MULTIPROCESADORES CON CONMUTADOR...............................11 MULTICOMPUTADORAS CON BASE EN BUSES............................13 MULTICOMPUTADORAS CON CONMUTADOR...............................13 CONCEPTOS DE SOFTWARE........................................... 15 SISTEMAS OPERATIVOS DE REDES....................................16 MODO DE TRANSMISIÓN ASÍNCRONA ATM...............................17 RPC............................................................17 COMUNICACIÓN EN GRUPO..........................................18 SINCRONIZACIÓN.................................................18 EL RELOJ.......................................................19 SISTEMA DE ARCHIVOS............................................20 TRANSPARENCIA..................................................20 FALLOS DEL SISTEMA.............................................21 MODELOS DE ACCESO............................................... 21 MEMORIA COMPARTIDA DISTRIBUIDA.................................21 MEMORIA COMPARTIDA BASADA EN PÁGINAS...........................21 MEMORIA COMPARTIDA BASADA EN OBJETOS...........................22 MODELOS DE CONSISTENCIA........................................22 RESUMEN......................................................... 23 Azarel Orbe Valle UAP: Sistemas Operativos II

Investigacion Sistemas Operativos Distribuidos

Embed Size (px)

DESCRIPTION

Aqui una breve investigacion sobre sistemas operativos distribuidos

Citation preview

ContenidoINTRODUCCIN2QU ES UN SISTEMA DISTRIBUIDO?3CONCEPTOS DE LOS SISTEMAS DISTRIBUIDOS4VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS CON RESPECTO DE LOS CENTRALIZADOS7VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS CON RESPECTO DE LAS PC INDEPENDIENTES8DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS9CONCEPTOS DE HARDWARE10MULTIPROCESADORES CON BASE EN BUSES11MULTIPROCESADORES CON CONMUTADOR11MULTICOMPUTADORAS CON BASE EN BUSES13MULTICOMPUTADORAS CON CONMUTADOR13CONCEPTOS DE SOFTWARE15SISTEMAS OPERATIVOS DE REDES16MODO DE TRANSMISIN ASNCRONA ATM17RPC17COMUNICACIN EN GRUPO18SINCRONIZACIN18EL RELOJ19SISTEMA DE ARCHIVOS20TRANSPARENCIA20FALLOS DEL SISTEMA21MODELOS DE ACCESO21MEMORIA COMPARTIDA DISTRIBUIDA21MEMORIA COMPARTIDA BASADA EN PGINAS21MEMORIA COMPARTIDA BASADA EN OBJETOS22MODELOS DE CONSISTENCIA22RESUMEN23

INTRODUCCIN

Los sistemas de cmputo estn sufriendo una revolucin Desde 1945 cuando comenz la era de la computadora moderna hasta cerca de 1985 las computadoras eran grandes y caras Incluso las minicomputadoras costaban por lo general cientos de miles de dlares cada una Como resultado la mayor parte de las organizaciones tena tan slo un puado de computadoras y por carecer de una forma para conectarlas stas operaban por lo general en forma independiente entre s Sin embargo a partir de la mitad de la dcada de 1980 dos avances tecnolgicos comenzaron a cambiar esta situacin El primero fue el desarrollo de poderosos microprocesadores En principio se dispona de mquinas de 8 bits pelo pronto se volvieron comunes las CPU de 16 32 e incluso 64 bits Muchos de ellos tenan el poder de cmputo de una computadora mainframe de tamao respetable (es decir grande) pero por una fraccin de su precio.El segundo desarrollo fue la invencin de redes de rea local de alta velocidad (LAN) Las redes de rea local (LANs[Local area networks]) permiten conectar docenas e incluso cientos de mquinas dentro de un edificio de tal forma que se pueden transferir pequeas cantidades de informacin entre ellas en un milisegundo o un tiempo parecido.Aunque los actuales sistemas de red solucionan parte de las necesidades actuales de comunicacin entre computadoras, tienen importantes limitaciones, y no son aplicables a una gran cantidad de problemas. Por ello surge la necesidad de crear sistemas distribuidos que sustituyan a los actuales sistemas de red o a los sistemas multiprocesadores.

QU ES UN SISTEMA DISTRIBUIDO?

Se han dado varias definiciones de sistema distribuido en la bibliografa pero ninguna de ellas es satisfactoria ni est de acuerdo con las dems Para nuestros propsitos es suficiente dar una vaga caracterizacin Un sistema distribuido es una coleccin de computadoras independientes que aparecen ante los usuarios del sistema como una mica computadora Esta definicin tiene dos aspectos El primero se refiere al hardware las mquinas son autnomas El segundo se refiere al software los usuarios piensan que el sistema es como una nica computadora Ambos son esenciales Regresaremos a este punto en una seccin posterior de este captulo despus de revisar algunos conceptos bsicos del hardware y el software.Ejemplo considere una fbrica de robots cada uno de los cuales contiene una poderosa computadora para el manejo de visin planeacin comunicacin y otras tareas Cuando un robot de la lnea de ensamble nota que una parte por instalar es defectuosa le pide al robot del departamento de partes que le traiga una refaccin Si todos los robots actan como dispositivos perifricos unidos a la misma computadora central y el sistema se puede programar de esta manera tambin se considera como un sistema distribuido.

CONCEPTOS DE LOS SISTEMAS DISTRIBUIDOSEstos 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 tienen un acoplamiento an ms dbil que las multicomputadoras.Los sistemas distribuidos estn basados en las ideas bsicas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad. Sin embargo estos aspectos son en parte contrarios, y por lo tanto los sistemas distribuidos han de cumplir en su diseo el compromiso de que todos los puntos anteriores sean solucionados de manera aceptable.EficienciaLa idea base de los sistemas distribuidos es la de obtener sistemas mucho ms rpidos que los ordenadores actuales. Es en este punto cuando nos encontramos de nuevo con el paralelismo.Para lograr un sistema eficiente hay que descartar la idea de ejecutar un programa en un nico procesador de todo el sistema, y pensar en distribuir las tareas a los procesadores libres ms rpidos en cada momento.La idea de que un procesador vaya a realizar una tarea de forma rpida es bastante compleja, y depende de muchos aspectos concretos, como la propia velocidad del procesador, pero tambin la localidad del procesador, los datos, los dispositivos, etc. Se han de evitar situaciones como enviar un trabajo de impresin a un ordenador que no tenga conectada una impresora de forma local.TransparenciaEl concepto de transparencia de un sistema distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, independientemente de la posicin del usuario. Queda como labor del sistema operativo el establecer los mecanismos que oculten la naturaleza distribuida del sistema y que permitan trabajar a los usuarios como si de un nico equipo se tratara.En un sistema transparente, las diferentes copias de un archivo deben aparecer al usuario como un nico archivo. Queda como labor del sistema operativo el controlar las copias, actualizarlas en caso de modificacin y en general, la unicidad de los recursos y el control de la concurrencia.

El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del sistema, pero el sistema operativo debe controlar que tanto el usuario como los programadores vean el ncleo del sistema distribuido como un nico procesador. El paralelismo es otro punto clave que debe controlar el sistema operativo, que debe distribuir las tareas entre los distintos procesadores como en un sistema multiprocesador, pero con la dificultad aadida de que sta tarea hay que realizarla a travs de varios ordenadores.FlexibilidadUn proyecto en desarrollo como el diseo de un sistema operativo distribuido debe estar abierto a cambios y actualizaciones que mejoren el funcionamiento del sistema. Esta necesidad ha provocado una diferenciacin entre las dos diferentes arquitecturas del ncleo del sistema operativo: el ncleo monoltico y el microncleo. Las diferencias entre ambos son los servicios que ofrece el ncleo del sistema operativo. Mientras el ncleo monoltico ofrece todas las funciones bsicas del sistema integradas en el ncleo, el microncleo incorpora solamente las fundamentales, que incluyen nicamente el control de los procesos y la comunicacin entre ellos y la memoria. El resto de servicios se cargan dinmicamente a partir de servidores en el nivel de usuario.Ncleo monolticoComo ejemplo de sistema operativo de ncleo monoltico est UNIX. Estos sistemas tienen un ncleo grande y complejo, que engloba todos los servicios del sistema. Est programado de forma no modular, y tiene un rendimiento mayor que un microncleo. Sin embargo, cualquier cambio a realizar en cualquier servicio requiere la parada de todo el sistema y la recopilacin del ncleo.MicroncleoLa arquitectura de microncleo ofrece la alternativa al ncleo monoltico. Se basa en una programacin altamente modular, y tiene un tamao mucho menor que el ncleo monoltico. Como consecuencia, el refinamiento y el control de errores son ms rpidos y sencillos. Adems, la actualizacin de los servicios es ms sencilla y gil, ya que slo es necesaria la recopilacin del servicio y no de todo el ncleo. Como contraprestacin, el rendimiento se ve afectado negativamente.En la actualidad la mayora de sistemas operativos distribuidos en desarrollo tienden a un diseo de microncleo. Los ncleos tienden a contener menos errores y a ser ms fciles de implementar y de corregir. El sistema pierde ligeramente en rendimiento, pero a cambio consigue un gran aumento de la flexibilidad.

FiabilidadUna de las ventajas claras que nos ofrece la idea de sistema distribuido es que el funcionamiento de todo el sistema no debe estar ligado a ciertas mquinas de la red, sino que cualquier equipo pueda suplir a otro en caso de que uno se estropee o falle.La forma ms evidente de lograr la fiabilidad de todo el sistema est en la redundancia. La informacin no debe estar almacenada en un solo servidor de archivos, sino en por lo menos dos mquinas. Mediante la redundancia de los principales archivos o de todos evitamos el caso de que el fallo de un servidor bloquee todo el sistema, al tener una copia idntica de los archivos en otro equipo.Otro tipo de redundancia ms compleja se refiere a los procesos. Las tareas crticas podran enviarse a varios procesadores independientes, de forma que el primer procesador realizara la tarea normalmente, pero sta pasara a ejecutarse en otro procesador si el primero hubiera fallado.EscalabilidadUn sistema operativo distribuido debera funcionar tanto para una docena de ordenadores como varios millares. Igualmente, debera no ser determinante el tipo de red utilizada (LAN o WAN) ni las distancias entre los equipos, etc.Aunque este punto sera muy deseable, puede que las soluciones vlidas para unos cuantos ordenadores no sean aplicables para varios miles. Del mismo modo el tipo de red condiciona tremendamente el rendimiento del sistema, y puede que lo que funcione para un tipo de red, para otro requiera un nuevo diseo.La escalabilidad propone que cualquier ordenador individual ha de ser capaz de trabajar independientemente como un sistema distribuido, pero tambin debe poder hacerlo conectado a muchas otras mquinas.Comunicacin La comunicacin entre procesos en sistemas con un nico procesador se lleva a cabo mediante el uso de memoria compartida entre los procesos. En los sistemas distribuidos, al no haber conexin fsica entre las distintas memorias de los equipos, la comunicacin se realiza mediante la transferencia de mensajes.

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS CON RESPECTO DE LOS CENTRALIZADOSLa fuerza motriz real detrs de la tendencia hacia la descentralizacin es la economa Hace un cuarto de siglo una persona experta en computadoras Herb Grosch enunci lo que se conocera despus como la ley de Grosch el poder de cmputo de CPU es proporcional al cuadrado de su precio Si se paga el doble se obtiene cuatro veces el desempeo Esta observacin encaj bien en la tecnologa mainframe de su tiempo y provoc que muchas organizaciones compartan una sola mquina la ms grande que pudieran conseguir. Con la tecnologa del microprocesador la ley de Grosch ya no es vlida Por unos cuantos cientos de dlares es posible comprar un microcircuito de CPU que puede ejecutar ms instrucciones por segundo de las que realizaba una de las ms grandes mainframes de la dcada de 1980 Si uno est dispuesto a pagar el doble se obtiene el mismo CPU slo que con una velocidad un poco mayor como resultado la solucin ms eficaz en cuanto a costo es limitarse a un gran nmero de CPU baratos reunidos en un mismo sistema As la razn nmero uno de la tendencia hacia los sistemas distribuidos es que estos sistemas tienen en potencia una proporcin precio/desempeo mucho mejor que la de un sistema centralizado En efecto un sistema distribuido da mejor en el clavo.Sea de paso algunos autores distinguen entre los sistemas distribuidos diseados para que muchos usuarios trabajen en forma conjunta y los sistemas paralelar cuya meta es lograr la mxima rapidez en un problema como lo hara nuestra mquina de 500 000 MIPS Creemos que esta distincin es difcil de sostener puesto que el espectro del diseo es en realidad un continuo Preferimos utilizar el trmino sistemas distribuidos en el sentido amplio para denotar cualquier sistema en el que varios CPU conectados entre s trabajan de manera conjunta.

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS CON RESPECTO DE LAS PC INDEPENDIENTESPuesto que los microprocesadores constituyen una forma econmica de trabajo por qu no se ofrece a cada persona su propia PC y se le deja trabajar de manera independiente? El asunto aqu es que muchos usuarios necesitan compartir ciertos datos Por ejemplo los empleados de reservaciones en las lneas areas necesitan tener acceso a la base de datos maestra de los vuelos y reservaciones existentes Si se le diera a cada empleado una copia particular de toda la base de datos eso no funcionara puesto que nadie conocera los asientos vendidos por los dems empleados Los datos compartidos son absolutamente esenciales para sta y otras aplicaciones de modo que las mquinas deben estar conectadas entre s La conexin de las mquinas conduce a un sistema distribuido Los datos no son los nicos elementos que se pueden compartir Otros candidatos son tambin los perifricos catos como las impresoras lser de color equipos de fotocomposicin y los dispositivos de almacenamiento masivo (por ejemplo las cajas pticas) Una tercera razn pala la conexin de un grupo de computadoras aisladas en un sistema distribuido es lograr una mejor comunicacin entre las personas Para mucha gente el correo electrnico tiene numerosos atractivos con respecto del correo con cartas el telfono o el FAX Es mucho ms rpido que el correo con cartas no requiere que ambas partes estn disponibles al mismo tiempo como el telfono y a diferencia del FAX produce documentos que se pueden editar reordenar almacena1 en la computadora y manejar mediante programas para procesamiento de texto Por ltimo un sistema distribuido tiene mayor flexibilidad potencial que el hecho de darle a cada usuario una computadora personal aislada Aunque un modelo consiste en darle a cada persona una computadora personal y conectarlas mediante LAN sta no es la nica posibilidad Otra es tener una mezcla de computadoras personales y compartidas tal vez con distintos tamaos y dejar que los trabajos se ejecuten de la forma ms adecuada en vez de ejecutarlos siempre en la computadora del propietario De esta manera la carga de trabajo se puede difundir entre las computadoras de forma ms eficaz y la prdida de unas cuantas mquinas se puede compensar si se permite a las personas que ejecuten sus trabajos en otra parte.

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOSAunque los sistemas distribuidos tienen sus aspectos fuertes tambin tienen sus debilidades En esta parte sealare algunas de ellas como ya he sealado el peor de los problemas el software Con el actual estado de las cosas no tenemos mucha experiencia en el diseo implantacin y uso del software distribuido. Qu tipo de sistemas operativos, lenguajes de programacin y aplicaciones son adecuados para estos sistemas? Cunto deben saber los usuarios de la distribucin? Qu tanto debe hacer el sistema y qu tanto deben hacer los usuarios? Los expertos tienen sus diferencias (no es que esto sea poco usual entre los expertos pero cuando se entra al tema de los sistemas distribuidos pocas veces se ponen de acuerdo) Mientras se realice ms investigacin este problema disminuir pero por el momento no puede subestimarse.Un segundo problema potencial es el debido a las redes de comunicacin stas pueden perder mensajes lo cual requiere un software especial para su manejo y puede verse sobrecargado Al saturarse la red sta debe remplazarse o aadir una segunda En ambos casos hay que tender cables en una parte de uno o ms edificios con gran costo o bien hay que remplazar las tarjetas de interfaz de la red (por ejemplo por fibras pticas) Una vez que el sistema llega a depender de la red la prdida o saturacin de sta puede negar algunas de las ventajas que el sistema distribuido deba conseguir Por ltimo el hecho ya descrito de que los datos sean fcil de compartir es una ventaja pero se puede convertir en un arma de dos filos Si las personas pueden tener acceso a los datos en todo el sistema entonces tambin pueden tener acceso a datos con los que no tienen nada que ver En otras palabras La seguridad es con frecuencia un problema Para que los datos se mantengan en secreto a toda costa es preferible tener una computadora personal aislada sin conexiones de red con las dems mquinas y mantenerla en un cuarto cerrado con un mueble seguro donde guardar todos los discos flexibles.

CONCEPTOS DE HARDWAREAunque todos los sistemas distribuidos constan de varios CPU existen diversas formas de organizar el hardware en particular en la forma de interconectarlos y comunicarse entre s en esta seccin analizaremos de manera breve el hardware de los sistemas distribuidos en particular la forma en que se conectan entre s las mquinas En la siguiente seccin examinaremos algunos de los aspectos del software relacionados con los sistemas distribuidos Con el paso de los aos se han propuesto diversos esquemas de clasificacin para los sistemas de cmputo con varios CPU pero ninguno de ellos ha tenido un xito completo ni se ha adoptado de manera amplia Es probable que la taxonoma ms citada sea la de Flynn (1972) aunque es algo rudimentaria Flynn eligi dos caractersticas consideradas por l como esenciales el nmero de flujos de instrucciones y el nmero de flujos de datos Una computadora con un flujo de instrucciones y uno de datos se llama SISD (Single Instruction Single Data) Todas las computadoras tradicionales de un procesador (es decir aquellas que tienen un CPU) caen dentro de esta categora desde las computadoras personales hasta las grandes mainframes La siguiente categora es SIMD (Single Instruction Multiple Data) con un flujo de instrucciones y varios flujos de datos Este tipo se refiere a ordenar procesadores con unidad de instruccin que busca una instruccin y despus instruye a varias unidades de datos para que la lleven a cabo en paralelo cada una con sus propios datos Estas mquinas son tiles para los cmputos que repiten los mismos clculos en varios conjuntos de datos por ejemplo sumando todos los elementos de 64 vectores independientes Ciertas supercomputadoras son SlMD La siguiente categora es MISD (Multiple Instruction Single Data) con un flujo de varias instrucciones y un flujo de datos Ninguna de las computadoras conocidas se ajusta a este modelo Por ltimo est MIMD (Multiple Instruction Multiple Data) que significa un grupo de computadoras independientes cada una con su propio contador del programa y datos Todos los sistemas distribuidos son MIMD por lo que este sistema de clasificacin no es muy til para nuestros fines.

MULTIPROCESADORES CON BASE EN BUSES Los multiprocesadores con base en buses constan de cierta cantidad de CPU conectados a un bus comn junto con un mdulo de memoria Una configuracin sencilla consta de un plano de base (backplane) de dta velocidad o tarjeta madre en el cual se pueden inserta1 las tal jetas de memoiia y el CPU Un bus tpico tiene 32 o 64 Ineas de direcciones 32 o 64 Ineas de datos y 32 o ms lneas de control todo lo cual opera en paralelo para leer una palabra de memoria un CPU coloca la direccin de la palabra deseada en las lneas de direcciones del bus y coloca una seal en las Ineas de control adecuadas para indicar que desea leer la memoria responde y coloca el valor de la palabra en las lneas de datos para permitir La lectura de sta por parte del CPU solicitante La escritura funciona de manera similar.Puesto que slo existe una memoria si el CPU A escribe una palabra en la memoria y despus el CPU B lee esa palabra un microsegundo despus B obtendr el valor recin escrito Una memoria con esta propiedad es coherente.

MULTIPROCESADORES CON CONMUTADORPara construir un multiprocesador con ms de 64 procesadores, es necesario un mtodo distinto para conectar cada CPU con la memoria. Una posibilidad es dividir la memoria en mdulos y conectarlos a las CPU con un conmutador de cruceta, como se muestra en la figura 1 -6(.1). Cada CPU y cada memoria tiene una conexin que sale de l, como se muestra en la figura. En cada interseccin est un delgado conmutador de punto de cruce electrnico que el hardware puede abrir y cerrar. Cuando un CPU desea tener acceso a una memoria particular, el conmutador del punto de cruce que los conecta se cierra de manera momentnea, para permitir dicho acceso. La virtud del conmutador de cruceta es que muchos CPU pueden tener acceso a la memoria al mismo tiempo, aunque si dos CPU intentan tener acceso a la misma memoria en forma simultnea, uno de ellos deber esperar.

La desventaja del conmutador de cruceta es que con n CPU y n memorias, se necesitan n2 conmutadores en los puntos de cruce. Si n es grande, este nmero puede ser prohibido. Como resultado, las personas han buscado y encontrado otras redes de conmutacin que necesiten menos conmutadores. La red omega de la figura 1-6(b) es un ejemplo. Esta red contiene conmutadores 2 x 2, cada uno de los cuales tiene dos entradas y dos salidas. Cada conmutador puede dirigir cualquiera de las entradas en cualquiera de las salidas. Un anlisis cuidadoso de la figura mostrar que si se eligen los estados adecuados de los conmutadores, cada CPU podr tener acceso a cada memoria. Estos conmutadores se pueden activar en cuestin de nanosegundos.

MULTICOMPUTADORAS CON BASE EN BUSESPor otro lado, la construccin de una multicomputadora (es decir, sin memoria compartida) es fcil. Cada CPU tiene conexin directa con su propia memoria local. El nico problema restante es la forma en que los CPU se comunicarn entre s. Es claro que aqu tambin se necesita cierto esquema de interconexin, pero como slo es para la comunicacin entre un CPU y otro, el volumen del trfico ser de varios rdenes menor en relacin con el uso de una red de interconexin para el trfico CPU-memoria. En la figura 1-7 vemos una multicomputadora con base en un bus. Es similar, desde el punto de vista topolgico, al multiprocesador basado en un bus, pero como tendr menor trfico, no necesita ser un bus con un plano de base de alta velocidad. De hecho, puede ser una LAN de menor velocidad (por lo general de 10-100 Mb/seg, en comparacin con 300 Mb/seg o ms para un bus con un plano de base). Asi,la figura 1-7 es ms a menudo una coleccin de estaciones de trabajo en una LAN que una coleccin de tarjetas de CPU que se insertan en un bus rpido (aunque esto ltimo definitivamente es un diseo posible).

MULTICOMPUTADORAS CON CONMUTADORNuestra ltima categora es la de las multicomputadoras con conmutador. Se han pro- puesto y construido varias redes de interconexin, pero todas tienen la propiedad de que cada CPU tiene acceso directo y exclusivo a su propia memoria particular. La figura 1-8 muestra dos topologas populares, una retcula y un hipercubo. Las retculas son fciles de comprender y se basan en las tarjetas de circuitos impresos. Se adecuan mejor a problemas con naturaleza bidimensional inherente, como la teora de grficas o la visin (por ejemplo, los ojos de un robot o el anlisis de fotografas).

Un hipercubo es un cubo n-dimensional. El hipercubo de la figura 1-8(b) es de dimensin 4. Se puede pensar, como dos cubos ordinarios, cada uno de los cuales cuenta con 8 vrtices y 12 aristas. Cada vrtice es un CPU. Cada arista es una conexin entre dos CPU. Se conectan los vrtices correspondientes de cada uno de los cubos. Para extender el cubo a 5 dimensiones, podramos aadir a la figura otro conjunto de dos cubos conectados entre s y conectar las aristas correspondientes en las dos mitades, y as en lo sucesivo. Para el caso de un hipercubo n-dimensional, cada CPU tiene n conexiones con otras CPU. As, la complejidad del cableado aumenta en proporcin logartmica con el tamao. Puesto que slo se conectan los vecinos ms cercanos, muchos mensajes deben realizar varios saltos antes de llegar a su destino. Sin embargo, la trayectoria de mayor longitud tambin crece en forma logartmica junto con el tamao, en contraste con la retcula, donde sta crece conforme la raz cuadrada del nmero de CPU. Los hipercubos con 1 024 CPU estn disponibles en el mercado desde hace varios aos y ya comienzan a estar disponibles los hipercubos con hasta 16 384 CPU.

CONCEPTOS DE SOFTWAREAunque el hardware es importante, el software lo es ms. La imagen que presenta y la forma de pensar de los usuarios de un sistema, queda determinada en gran medida por el software del sistema operativo, no por el hardware. En esta seccin daremos una introduccin a los distintos tipos de sistemas operativos para los multiprocesadores y multicomputadoras que hemos estudiado y analizaremos qu tipo de software va de acuerdo con el hardware. Los sistemas operativos no se pueden clasificar tan fcil como el hardware. Por su propia naturaleza, el software es vago y amorfo. Aun as, es ms o menos posible distinguir dos tipos de sistemas operativos para los de varios CPU: los dbilmente acoplados y los fuertemente acoplados. Como veremos, el software dbil o fuertemente acoplado es un tanto anlogo al hardware dbil o fuertemente acoplado. El software dbilmente acoplado permite que las mquinas y los usuarios de un sistema distribuido sean independientes entre s en lo fundamental, pero que interacten en cierto grado cuando sea necesario. Consideremos un grupo de computadoras personales, cada una de las cuales tiene su propio CPU, su propia memoria, su propio disco duro y su propio sistema operativo, pero que comparten ciertos recursos, corno las impresoras lser y las bases de datos en una LAN. Este sistema est dbilmente acoplado, puesto que las mquinas, individuales se distinguen con claridad, cada una de las cuales tiene su propio trabajo por realizar. Si la red falla por alguna razn, las mquinas individuales continan su ejecucin - en cierto grado considerable, aunque se puede perder cierta funcionalidad (por ejemplo, la capacidad de imprimir archivos). Para mostrar lo difcil que resulta establecer definiciones en esta rea, consideremos ahora el mismo sistema anterior, pero sin la red. Para imprimir un archivo, el usuario escribe un archivo en un disco flexible, lo lleva hasta la mquina que tiene la impresora, lo lee en ella y despus lo imprime. Es todava un sistema distribuido, slo que ahora ms dbilmente acoplado? Esto es difcil de decir. Desde un punto de vista fundamental, no existe tina diferencia real entre la comunicacin a travs de una LAN y la comunicacin mediante el traslado fsico de los discos flexibles. Lo ms que se puede decir es que las tasas de retraso y transmisin de los datos son peores en el segundo ejemplo. En el otro extremo, podramos tener el caso de un multiprocesador dedicado a la ejecucin de un programa de ajedrez en paralelo. A cada CPU se le asigna un tablero para su evaluacin y ste ocupa su tiempo en la evaluacin de este tablero y los que se pueden generar a partir de l. Al terminar la evaluacin, el CPU informa de sus resultados y se le proporciona un nuevo tablero para trabajar con l. El software para este sistema, es decir, el programa de aplicacin y el sistema operativo necesario para soportarlo, estn mejor acoplados que el ejemplo anterior. Hemos visto entonces cuatro tipos de hardware distribuido y dos de software. En teora, deberan existir ocho combinaciones de hardware y software. De hecho, slo existen cuatro, puesto que para el usuario, la interconexin de la tecnologa no es visible. Para la mayor parte de los propsitos, un multiprocesador lo es, sin importar si utiliza un bus con cachs monitores o una red omega. En las secciones siguientes analizaremos algunas de las combinaciones ms comunes de hardware y software.SISTEMAS OPERATIVOS DE REDES Comenzaremos con el software dbilmente acoplado en hardware dbilmente acoplado, puesto que tal vez sta sea la combinacin ms comn en muchas organizaciones. Un ejemplo tpico es una red de estaciones de trabajo de ingeniera conectadas mediante una LAN. En este modelo, cada usuario tiene una estacin de trabajo para su uso exclusivo. Puede o no tener un disco duro. En definitiva, tiene su propio sistema operativo. Lo normal es que todos los comandos se ejecuten en forma local, justo en la estacin de trabajo. Sin embargo, a veces es posible que un usuario se conecte de manera remota con otra estacin de trabajo mediante un comando como rlogin machine El efecto de este comando es convertir la propia estacin de trabajo del usuario en una terminal enlazada con la mquina remota. Los comandos escritos en el teclado se envan a la mquina remota y la salida de la mquina remota se exhibe en la pantalla. Para pasar a otra mquina remota, primero es necesario desconectarse de la primera, y utilizar despus el comando rlogin para conectarse a la otra. En cualquier instante, slo se puede utilizar una mquina y la seleccin de sta se realiza de forma manual. Las redes de estaciones de trabajo tambin tienen un comando de copiado remoto para copiar archivos de una mquina a otra. Por ejemplo, un comando como rcp machine1:file1 machine2:file2 Copiara el archivo file1 de machine1 a machine2, con el nombre de file2. De nuevo, el movimiento de los archivos es explcito y se requiere que el usuario est por completo consciente de la posicin de todos los archivos y el sitio donde se ejecutan todos los comandos. Aunque es mejor que nada, esta forma de comunicacin es primitiva en extremo y ha provocado que los diseadores de sistemas busquen formas ms convenientes de comunicacin y distribucin de la informacin. Un mtodo consiste en proporcionar un sistema de archivos global, compartido, accesible desde todas las estaciones de trabajo. Una o varias mquinas, llamadas servidores de archivos, soportan al sistema de archivos. Los servidores de archivo aceptan solicitudes para la lectura y escritura de archivos por parte de los pro- gramas usuarios que se ejecutan en las otras mquinas (no servidoras), llamadas clientes. Cada una de las solicitudes que llegue se examina, se ejecuta y la respuesta se enva de regreso, como se ilustra en la figura 1-9.

MODO DE TRANSMISIN ASNCRONA ATMEl modo de transmisin asncrona o ATM proporciona un rpido modo de transmisin. Las altas velocidades se alcanzan prescindiendo de la informacin de control de flujo y de control de errores en los nodos intermedios de la transmisin. ATM usa el modo orientado a conexin, y permite la transmisin de diferentes tipos de informacin, como voz, vdeo, datos, etc.El modelo cliente-servidor basa la comunicacin en una simplificacin del modelo OSI. Las siete capas que proporciona producen un desaprovechamiento de la velocidad de transferencia de la red, con lo que slo se usarn tres capas: fsica (1), enlace de datos (2) y solicitud/respuesta (5). Las transferencias se basan en el protocolo solicitud/respuesta y se elimina la necesidad de conexin.RPCOtro paso en el diseo de un sistema operativo distribuido plantea las llamadas a procedimientos remotos o RPCs. Los RPC amplan la llamada local a procedimientos, y los generalizan a una llamada a un procedimiento localizado en cualquier lugar de todo el sistema distribuido. En un sistema distribuido no se debera distinguir entre llamadas locales y RPCs, lo que favorece en gran medida la transparencia del sistema.

Una de las dificultades ms evidentes a las que se enfrenta el RPC es el formato de los parmetros de los procedimientos. Un ejemplo para ilustrar este problema es la posibilidad de que en un sistema distribuido formado por diferentes tipos de ordenadores, un ordenador con formato little endian llamara a un procedimiento de otro ordenador con formato big endian, etc. Este problema se podra solucionar si tenemos en cuenta que ambos programas conocen el tipo de datos de los parmetros, o estableciendo un estndar en el formato de los parmetros, de forma que sea usado de forma nica.Otro problema de peor solucin es el paso de apuntadores como parmetros. Debido a que los apuntadores guardan una direccin del espacio de direcciones local, el procedimiento que recibe el apuntador como parmetro no puede usar inmediatamente el apuntador, ya que no tiene acceso a los datos, que para l son remotos. En el tema 7 se describir la memoria compartida, que propone una solucin a este problema.Por ltimo queda por solucionar la tolerancia a fallos. Una llamada a un procedimiento remoto puede fallar por motivos que antes no existan, como la prdida de mensajes o el fallo del cliente o del servidor durante la ejecucin del procedimiento.La limitacin del RPC ms clara en los sistemas distribuidos es que no permite enviar una solicitud y recibir respuesta de varias fuentes a la vez, sino que la comunicacin se realiza nicamente entre dos procesos. Por motivos de tolerancia a fallos, bloqueos, u otros, sera interesante poder tratar la comunicacin en grupo.COMUNICACIN EN GRUPOLa comunicacin en grupo tiene que permitir la definicin de grupos, as como caractersticas propias de los grupos, como la distincin entre grupos abiertos o que permiten el acceso y cerrados que lo limitan, o como la distincin del tipo de jerarqua dentro del grupo. Igualmente, los grupos han de tener operaciones relacionadas con su manejo, como la creacin o modificacin.SINCRONIZACIN La sincronizacin en sistemas de un nico ordenador no requiere ninguna consideracin en el diseo del sistema operativo, ya que existe un reloj nico que proporciona de forma regular y precisa el tiempo en cada momento. Sin embargo, los sistemas distribuidos tienen un reloj por cada ordenador del sistema, con lo que es fundamental una coordinacin entre todos los relojes para mostrar una hora nica. Los osciladores de cada ordenador son ligeramente diferentes, y como consecuencia todos los relojes sufren un desfase y deben ser sincronizados continuamente. La sincronizacin no es trivial, porque se realiza a travs de mensajes por la red, cuyo tiempo de envo puede ser variable y depender de muchos factores, como la distancia, la velocidad de transmisin o la propia saturacin de la red, etc.EL RELOJLa sincronizacin no tiene por qu ser exacta, y bastar con que sea aproximadamente igual en todos los ordenadores. Hay que tener en cuenta, eso s, el modo de actualizar la hora de un reloj en particular. Es fundamental no retrasar nunca la hora, aunque el reloj adelante. En vez de eso, hay que ralentizar la actualizacin del reloj, frenarlo, hasta que alcance la hora aproximadamente. Existen diferentes algoritmos de actualizacin de la hora, tres de ellos se exponen brevemente a continuacin. Algoritmo de CristianComenzaremos con un algoritmo adecuado para los sistemas en los que una mquina tiene un receptor WWV y el objetivo es hacer que todas las mquinas se sincronicen con ella. Llamaremos a la mquina con el receptor WWV un servidor del tiempo. Nuestro algoritmo se basa en el trabajo de Cristian (1989) y trabajos anteriores. En forma peridica, en un tiempo que no debe ser mayor que 612p segundos, cada mquina enva un mensaje al servidor para solicitar el tiempo actual.Como primera aproximacin, cuando el emisor obtiene la respuesta, puede hacer que su tiempo sea CUTC. Sin embargo, este algoritmo tiene dos problemas, uno mayor y otro menor. El problema mayor es que el tiempo nunca debe correr hacia atrs. Si el reloj del emisor es rpido, CUTC, ser menor que el valor actual de C del emisor. El simple traslado de CUTC, podra provocar serios problemas, tales como tener un archivo objeto compilado justo despus del cambio de reloj y que tenga un tiempo anterior al del archivo fuente, modificado justo antes del cambio del reloj El algoritmo de BerkeleyEn el algoritmo de Cristian, el servidor de tiempo es pasivo. Otras mquinas le piden el tiempo de manera peridica y todo lo que hace es responder a sus solicitudes. En el UNIX de Berkeley, se sigue el mtodo diametralmente opuesto (Gusella y Zatti, 1989). En este caso, el servidor de tiempo (en realidad, un demonio para el tiempo) est activo y realiza un muestre0 peridico de todas las mquinas para preguntarles el tiempo. Con base en las respuestas, calcula un tiempo promedio y le indica a todas las dems mquinas que avancen su reloj a la nueva hora o que disminuyan la velocidad del mismo hasta lograr cierta reduccin especfica. Este mtodo es adecuado para un sistema donde no exista un receptor de WWV. La hora del demonio para el tiempo debe ser establecida en forma manual por el operador, de manera peridica. El mtodo se muestra en la figura 3-7.

Algoritmos con promedioLos dos mtodos anteriores son muy centralizados, con las desventajas usuales. Tambin se conocen algunos algoritmos descentralizados. Una clase de algoritmos descentralizados trabaja al dividir el tiempo en intervalos de re sincronizacin de longitud fija. El i-simo intervalo inicia en T,, + iR y va hasta T, + (i+l)R, donde T,, es un momento ya acordado en el pasado y R es un parmetro del sistema. Al inicio de cada intervalo, cada mquina transmite el tiempo actual segn su reloj. Puesto que los relojes de las diversas mquinas no funcionan con exactamente la misma velocidad, estas transmisiones no ocurrirn en forma simultnea.SISTEMA DE ARCHIVOS A diferencia de los sistemas de archivos clsicos, un sistema de archivos distribuido debe ser descentralizado, transparente y tolerante a fallos.TRANSPARENCIAEl problema ms importante a resolver es el modo de que todos los ordenadores puedan acceder a todos los archivos del sistema. Para ello es necesario que todos los ordenadores lleven siempre y en todo momento una copia actualizada de la estructura de archivos y directorios. Si esta estructura oculta la localizacin fsica de los archivos entonces hemos cumplido el criterio de transparencia.FALLOS DEL SISTEMAQue el sistema de archivos sea tolerante a fallos implica que el sistema debe guardar varias copias del mismo archivo en distintos ordenadores para garantizar la disponibilidad en caso de fallo del servidor original. Adems, se ha de aplicar un algoritmo que nos permita mantener todas las copias actualizadas de forma consistente, o un mtodo alternativo que slo nos permita acceder al archivo actualizado, como invalidar el resto de copias cuando en cualquiera de ellas se vaya a realizar una operacin de escritura. El uso de memorias cache para agilizar el acceso a los archivos tambin es recomendable, pero este caso requiere analizar con especial atencin la consistencia del sistema.MODELOS DE ACCESODebido a la complejidad del acceso a los archivos a travs de todo el sistema distribuido, surgen dos modelos para el acceso a los archivos: el modelo carga/descarga, y el modelo de acceso remoto. El primer modelo simplifica el acceso permitiendo nicamente las operaciones de cargar y descargar un archivo. El acceso a cualquier parte del archivo implica solicitar y guardar una copia local del archivo completo, y slo se puede escribir de forma remota el archivo completo. Este mtodo sera especialmente ineficaz a la hora de realizar pequeas modificaciones en archivos muy grandes, como podran ser bases de datos. El modelo de acceso remoto es mucho ms complejo, y permite todas las operaciones tpicas de un sistema de archivos local.MEMORIA COMPARTIDA DISTRIBUIDA La memoria compartida distribuida o DSM es una abstraccin que se propone como alternativa a la comunicacin por mensajes.MEMORIA COMPARTIDA BASADA EN PGINASEl esquema de DSM 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.Una mejora dirigida a mejorar el rendimiento sugiere dividir el espacio de direcciones en una zona local y privada y una zona de memoria compartida, que se usar nicamente por procesos que necesiten compartir datos. Esta abstraccin se acerca a la idea de programacin mediante la declaracin explcita de datos pblicos y privados, y minimiza el envo de informacin, ya que slo se enviarn los datos que realmente vayan a compartirse.MEMORIA COMPARTIDA BASADA EN OBJETOSUna alternativa al uso de pginas es tomar el objeto como base de la transferencia de memoria. Aunque el control de la memoria resulta ms complejo, el resultado es al mismo tiempo modular y flexible, y la sincronizacin y el acceso se pueden integrar limpiamente. Otra de las restricciones de este modelo es que todos los accesos a los objetos compartidos han de realizarse mediante llamadas a los mtodos de los objetos, con lo que no se admiten programas no modulares y se consideran incompatibles.MODELOS DE CONSISTENCIALa duplicidad de los bloques compartidos aumenta el rendimiento, pero produce un problema de consistencia entre las diferentes copias de la pgina en caso de una escritura. Si con cada escritura es necesario actualizar todas las copias, el envo de las pginas por la red provoca que el tiempo de espera aumente demasiado, convirtiendo este mtodo en impracticable. Para solucionar este problema se proponen diferentes modelos de consistencia, que establezcan un nivel aceptable de acercamiento tanto a la consistencia como al rendimiento. Nombramos algunos modelos de consistencia, del ms fuerte al ms dbil: consistencia estricta, secuencial, causal, PRAM, del procesador, dbil, de liberacin y de entrada.

RESUMENLos sistemas operativos distribuidos son una gran herramienta para poder llevar a cabo tareas que requieren de muchos recursos computacionales, dado que cuando se implementan pueden unir el potencial de varias computadoras para realizar dichas tareas que una simple computadora no podra realizar y en caso de que pudiera hacerlo el tiempo y el costo que de esta tarea no sera viable, es por eso la importancia de los sistemas distribuidos, entre las grandes ventajas que tienen son la eficiencia, confiabilidad y el costo para mantenerlos. Aunque las ventajas son muchas es importante destacar que uno de los inconvenientes es que dichos sistemas son ms complejos dado que se tienen que administrar ms recursos de hardware y tenerlos sincronizados con mediante complejas tcnicas de software, ya sea para evitar los famosos cuellos de botella en la comunicacin y tener problemas en la seguridad.En los sistemas distribuidos de hace mucha mencin sobre el concepto de escalabilidad y se le considera como una de las propiedades mar importantes en este tipo de sistemas, dado que una computadora estando en red puede comportarse como como un solo sistema distribuido o compartir los recursos conectndose a la red del sistema para resolver tareas.Una cosa que tambin es muy interesante es la forma en como sincronizan la comunicacin de los datos un sistema distribuido esto mediante algoritmos algunos ms complejos que otros, pero lo que finalmente se busca en cada uno de estos, es mantener un flujo de datos sincronizados para que el funcionamiento del sistema de lleve a cabo sin problemas.Bibliografa Andrew S. Tanenbaum. Sistemas operativos modernos, 3 ed. PEARSON Educacin, Mxico, 2009. Abraham Silberschatz, Peter B. Galvin, Greg Gagne. FundamentosdeSistemasOperativos, 7 ed. Mc Graw Hill, Aravaca (Madrid), 2006. Andrew S. Tanenbaum. Sistemas Operativos Distribuidos, 1 ed. PEARSON Educacin, Mxico.

Azarel Orbe Valle UAP: Sistemas Operativos II