Вы находитесь на странице: 1из 31

Sistemas distribuidos: se trata de una agrupacin de computadores conectados desde una red y con el software adecuado para proporcionar

facilidades a los usuarios. Esto se emplean en diversas plataformas hardware como en los trabajos, rea local e internet ya sea en una are local o extensa. http://www.dia.eui.upm.es/Asignatu/Sis_dis/Paco/SOD.pdf http://html.rincondelvago.com/sistemas-operativos-distribuidos_2.html

1.1 Sistemas Distribuidos Sistemas cuyos componentes hardware y software, estn en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicacin mediante un protocolo prefijado por un esquema cliente-servidor. Coleccin de elementos de cmputo autnomo que se encuentran fsicamente separados y no comparten una memoria comn, se comunican entre s a travs del intercambio de mensajes utilizando un medio de comunicacin. Los sistemas autnomos pueden tener caractersticas no homogneas. 1.1.1 Ventajas Desventajas contra Sistemas Centralizados Ventajas * Aumento de la disponibilidad. * Mejora del desempeo. * Balanceo en la carga de trabajo. * Comparticin de recursos. * Comparticin de informacin. * Confiabilidad, disponibilidad y tolerancia a fallas. * Modularidad en el desarrollo. * Flexibilidad. * Crecimiento incremental. * Reduccin de costos. * Mayor capacidad de modelar estructuras organizacionales. Desventajas * Uso ineficiente de los recursos distribuidos. * Capacidad reducida para administrar apropiadamente grupos de procesadores y memoria localizada en distintos sitios. * Enorme dependencia del desempeo de la red y de la confiabilidad de la misma. * Debilitamiento de la seguridad. * Mayor complejidad en la administracin y mantenimiento. * Mayor complejidad en su construccin.

1.1.2 Modelo Cliente Servidor Hardware cliente-servidor La arquitectura cliente-servidor permite al usuario en una mquina, llamada el cliente, requerir algn tipo de servicio de una mquina a la que est unido, llamado el servidor, mediante una red como una LAN (Red de Area Local) o una WAN (Red de Area Mundial). Estos servicios pueden ser peticiones de datos de una base de datos, de informacin contenida en archivos o los archivos en s mismos, o peticiones de imprimir datos en una impresora asociada. Aunque clientes y servidores suelen verse como mquinas separadas, pueden, de hecho, ser dos reas separadas en la misma mquina. Por tanto, una nica mquina Unix puede ser al mismo tiempo cliente y servidor. Adems una mquina cliente unida a un servidor puede ser a su vez servidor de otro cliente y el servidor puede ser un cliente de otro servidor en la red. Tambin es posible tener el cliente corriendo en un sistema operativo y el servidor en otro distinto. Hay varios tipos comunes de mquinas clientes en entornos cliente-servidor. Uno de los clientes ms populares es una computadora personal basada en Intel que ejecuta aplicaciones de DOS en un entorno Windows. Otra cliente popular es una terminal X; de hecho, el sistema X Windows es un modelo cliente-servidor clsico. Hay tambin clientes Unix que ejecutan sistemas operativos como UnixWare. Un servidor que pide cosas a otro servidor es un cliente de la mquina a la que est pidiendo. Sin considerar el tipo de cliente que se est usando en una red cliente-servidor, se realizando al menos una de las funciones bsicas descritas aqu como funciones del cliente. Los clientes en una red cliente-servidor son las mquinas o procesos que piden informacin, recursos y servicios a un servidor unido. Estas peticiones pueden ser cosas como proporcionar datos de una base de datos, aplicaciones, partes de archivos o archivos completos a la mquina cliente. Los datos, aplicaciones o archivos pueden residir en un servidor y ser simplemente accedidos por el cliente o pueden ser copiados o movidos fsicamente a la mquina cliente. Esta disposicin permite a la mquina cliente ser relativamente pequea. Para cada tipo de entorno de cliente, hay habitualmente software especfico (y a veces hardware) en el cliente, con algn software y hardware anlogo en el servidor. Los servidores pueden ser sistemas operativos diferentes como Windows NT, Windows 95, OS/2, Unix. Unix es popular porque, como sistema operativo de servidores, puede ser utilizado en muchos tipos de configuraciones sobre mquinas servidor, adems de como servidores de archivos y servidores de impresin. Ventajas e inconvenientes del esquema Cliente/Servidor Se mencionan a continuacin algunas de las ventajas de la utilizacin del esquema Cliente/Servidor. Uno de los aspectos que ms ha promovido el uso de sistemas Cliente/Servidor es la existencia de plataformas de hardware cada vez ms baratas. Esta constituye a su vez una de las ms palpables ventajas de este esquema, la posibilidad de utilizar mquinas considerablemente ms baratas que las requeridas por una solucin centralizada, basada en sistemas grandes. Adems de lo anterior, se pueden utilizar componentes, tanto de hardware como de software, de varios fabricantes, lo cual contribuye considerablemente a la reduccin de costos y favorece la flexibilidad en la implantacin y

actualizacin de soluciones. Adems de lo anterior, el esquema Cliente/Servidor facilita la integracin entre sistemas diferentes y compartir informacin, permitiendo, por ejemplo que las mquinas ya existentes puedan ser utilizadas pero utilizando interfaces ms amigables al usuario. De esta manera podemos, por ejemplo, integrar PCs con sistemas medianos y grandes, sin que todas las mquinas tengan que utilizar el mismo sistema operacional. Al favorecer el uso de interfaces grficas interactivas, los sistemas construidos con este esquema tienen una interaccin ms intuitiva con el usuario. Si se utilizan interfaces grficas para interactuar con el usuario, el esquema Cliente/Servidor presenta la ventaja, con respecto a uno centralizado, de que no es siempre necesario transmitir informacin grfica por la red pues esta puede residir en el cliente, lo cual permite aprovechar mejor el ancho de banda de la red. La estructura inherentemente modular facilita adems la integracin de nuevas tecnologas y el crecimiento de la infraestructura computacional, favoreciendo as la escalabilidad de las soluciones. El esquema Cliente/Servidor contribuye adems a proporcionar a los diferentes departamentos de una empresa soluciones locales, pero permitiendo adems la integracin de la informacin relevante a nivel global. El esquema cliente/servidor tiene algunos inconvenientes que se mencionan a continuacin. Por una parte, el mantenimiento de los sistemas es ms difcil pues implica la interaccin de diferentes partes de hardware y de software, distribuidas por distintos proveedores, lo cual dificulta el diagnstico de fallas. Adems de lo anterior, se cuenta con muy escasas herramientas para la administracin y ajuste del desempeo de los sistemas. En el desarrollo de aplicaciones Cliente/Servidor se deben tener en cuenta diferentes aspectos, que se mencionan a continuacin. 1.1.3 Caractersticas Hardware Sistemas Distribuidos Todos los sistemas distribuidos constan de varias cpu, organizadas de diversas formas, especialmente respecto de: La forma de interconectarlas entre s. Los esquemas de comunicacin utilizados. Existen diversos esquemas de clasificacin para los sistemas de cmputos con varias cpu: Uno de los mas conocidos es la Taxonoma de Flynn: Considera como caractersticas esenciales el nmero de flujo de instrucciones y el nmero de flujos de datos. La clasificacin incluye equipos SISD, SIMD, MISD y MIMD. SISD (Single Instruction Single Data: un flujo de instrucciones y un flujo de datos): Poseen un nico procesador. SIMD (Single Instruction Multiple Data: un flujo de instrucciones y varios flujos de datos): Se refiere a ordenar procesadores con una unidad de instruccin que: Busca una instruccin. Instruye a varias unidades de datos para que la lleven a cabo en paralelo, cada una con sus propios datos. Son tiles para los cmputos que repiten los mismos clculos en varios conjuntos de datos. MISD (Multiple Instruction Single Data: un flujo de varias instrucciones y un solo flujo de datos): No se presenta en la prctica. MIMD (Multiple Instruction Multiple Data: un grupo de computadoras independientes, cada una con su

propio contador del programa, programa y datos): Todos los sistemas distribuidos son de este tipo. Un avance sobre la clasificacin de Flynn incluye la divisin de las computadoras MIMD en dos grupos: Multiprocesadores: poseen memoria compartida: Los distintos procesadores comparten el mismo espacio de direcciones virtuales. Multicomputadoras: no poseen memoria compartida: Ej.: grupo de PC conectadas mediante una red. Cada una de las categoras indicadas se puede clasificar segn la arquitectura de la red de interconexin en: Esquema de bus: Existe una sola red, bus, cable u otro medio que conecta todas las mquinas: Ej.: la televisin por cable. Esquema con conmutador: No existe una sola columna vertebral de conexin: Hay mltiples conexiones y varios patrones de conexionado. Los mensajes de mueven a travs de los medios de conexin. Se decide explcitamente la conmutacin en cada etapa para dirigir el mensaje a lo largo de uno de los cables de salida. Ej.: el sistema mundial telefnico pblico. Otro aspecto de la clasificacin considera el acoplamiento entre los equipos: Sistemas fuertemente acoplados: El retraso al enviar un mensaje de una computadora a otra es corto y la tasa de transmisin es alta. 1.1.4 Caractersticas Software Sistemas Distribuidos La importancia del software supera frecuentemente a la del hardware La imagen que un sistema presenta queda determinada en gran medida por el software del S. O. y no por el hardware. Los S. O. no se pueden encasillar fcilmente, como el hardware, pero se los puede clasificar en dos tipos: Dbilmente acoplados. Fuertemente acoplados. El software dbilmente acoplado de un sistema distribuido: Permite que las mquinas y usuarios sean independientes entre s en lo fundamental. Facilita que interacten en cierto grado cuando sea necesario. Los equipos individuales se distinguen fcilmente. Combinando los distintos tipos de hardware distribuido con software distribuido se logran distintas soluciones: No todas interesan desde el punto de vista funcional del usuario: Ej.: un multiprocesador es un multiprocesador: No importa si utiliza un bus con cachs monitores o una red omega. 1.1.5 Direccionamiento Lgico Fsico Sistemas Distribuidos Direccionamiento lgico y fsico El proceso desde que los datos son incorporados al ordenados hasta que se transmiten al medio se llama encapsulacin. Estos datos son formateados, segmentados, identificados con el direccionamiento lgico y fsico para finalmente ser enviados al medio. A cada capa del modelo OSI le corresponde una PDU (Unidad de Datos) siguiendo por lo tanto el siguiente orden de encapsulamiento: DATOS-SEGMENTOS-PAQUETES-TRAMAS-BITS CAPA TRANSMITE APLICACIN DATOS

PRESENTACION SESIN TRANSPORTE SEGMENTOS RED PAQUETES ENLACE DED DATOS TRAMAS FSICA BITS Debido a que posiblemente la cantidad de los datos sean demasiados, la capa de transporte desde de origen, se encarga de segmentarlos para as ser empaquetados debidamente, esta misma capa en el destino se encargara de reensamblar los datos y colocarlos en forma secuencial, ya que no siempre llegan a su destino en el orden en que han sido segmentados, as mismo acorde al protocolo que se este utilizando habr correccin de errores. Estos segmentos son empaquetados (paquetes o datagramas) e identificados en la capa de red con la direccin lgica o IP correspondiente al origen y destino. Ocurre lo mismo con la direccin MAC en la capa de enlace de datos formndose las tramas o frames para ser transmitidos a travs de alguna interfaz. 1.2 Concepto Caractersticas Sor Son aquellos sistemas que mantienen a dos o ms computadoras unidas a travs de algn medio de comunicacin (fsico o no), con el objetivo primordial de poder compartir los diferentes recursos y la informacin del sistema. El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware. Los Sistemas Operativos de red mas ampliamente usados son: Linux,Novell Netware, Personal Netware, LAN Manager, Windows NT Server UNIX. Una posibilidad es el software dbilmente acoplado en hardware dbilmente acoplado: Es una solucin muy utilizada. Ej.: una red de estaciones de trabajo conectadas mediante una LAN. Cada usuario tiene una estacin de trabajo para su uso exclusivo: Tiene su propio S. O. La mayora de los requerimientos se resuelven localmente. Es posible que un usuario se conecte de manera remota con otra estacin de trabajo: Mediante un comando de login remoto. Se convierte la propia estacin de trabajo del usuario en una terminal remota enlazada con la mquina remota. Los comandos se envan a la mquina remota. La salida de la mquina remota se exhibe en la pantalla local. Para alternar con otra mquina remota, primero hay que desconectarse de la primera: En cualquier instante solo se puede utilizar una mquina. Las redes tambin disponen de un comando de copiado remoto de archivos de una mquina a otra: Requiere que el usuario conozca: La posicin de todos los archivos. El sitio donde se ejecutan todos los comandos. Una mejor solucin consiste en un sistema de archivos global compartido, accesible desde todas las estaciones de trabajo: Una o varias mquinas soportan al sistema de archivos: Son los servidores de archivos. Los servidores de archivos: Aceptan solicitudes de los programas de usuarios: Los programas se ejecutan en las mquinas no servidoras, llamadas clientes. Las solicitudes se examinan, se ejecutan y la respuesta se enva de regreso. Generalmente tienen un sistema jerrquico de archivos. Las estaciones de trabajo pueden importar o montar estos sistemas de archivos: Se incrementan sus sistemas de archivos locales. Se pueden montar los servidores en lugares diferentes de sus respectivos sistemas de archivos: Las rutas de acceso a un determinado archivo pueden ser diferentes para las distintas estaciones. Los distintos clientes tienen un punto de vista distinto del sistema de archivos. El nombre de un archivo depende: Del lugar desde el cual se tiene acceso a l. De la configuracin del sistema de archivos. El S. O. de este tipo de ambiente debe: Controlar las estaciones de trabajo en lo individual. Controlar a los servidores de archivo. Encargarse de la comunicacin entre los servidores. Todas las mquinas pueden ejecutar el mismo S. O., pero esto no es necesario. Si los clientes y los servidores ejecutan diversos S. O., como mnimo deben coincidir en el formato y significado de todos los mensajes que podran intercambiar. Esquemas como este se denominan sistema operativo de red: Cada mquina tiene un alto grado de autonoma. Existen pocos requisitos a lo largo de todo el sistema. 1.3 Concepto Caractersticas del Sod 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.

Transparencia El 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 los 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. Eficiencia La 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. Flexibilidad Un 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. Escalabilidad Un 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. Fiabilidad Una 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.

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.

2. Sistemas Operativos Distribuidos (DOS)


2.1. Presentacin
Un sistema distribuido se define como una coleccin de computadores autnomos conectados por una red, y con el software distribuido adecuado para que el sistema sea visto por los usuarios como una nica entidad capaz de proporcionar facilidades de computacin. El desarrollo de los sistemas distribuidos vino de la mano de las redes locales de alta velocidad a principios de 1970. Ms recientemente, la disponibilidad de computadoras personales de altas prestaciones, estaciones de trabajo y ordenadores servidores ha resultado en un mayor desplazamiento hacia los sistemas distribuidos en detrimento de los ordenadores centralizados multiusuario. Esta tendencia se ha acelerado por el desarrollo de software para sistemas distribuidos, diseado para soportar el desarrollo de aplicaciones distribuidas. Este software permite a los ordenadores coordinar sus actividades y compartir los recursos del sistema hardware, software y datos. Los sistemas distribuidos se implementan en diversas plataformas hardware, desde unas pocas estaciones de trabajo conectadas por una red de rea local, hasta Internet, una coleccin de redes de rea local y de rea extensa interconectados, que en lazan millones de ordenadores. Las aplicaciones de los sistemas distribuidos varan desde la provisin de capacidad de cmputo a grupos de usuarios, hasta sistemas bancarios, comunicaciones multimedia y abarcan prcticamente todas las aplicaciones comerciales y tcnicas de los ordenadores. Los requisitos de

dichas aplicaciones incluyen un alto nivel de fiabilidad, seguridad contra interferencias externas y privacidad de la informacin que el sistema mantiene. Se deben proveer accesos concurrentes a bases de datos por parte de muchos usuarios, garantizar tiempos de respuesta, proveer puntos de acceso al servicio que estn distribuidos geogrficamente, potencial para el crecimiento del sistema para acomodar la expansin del negocio y un marco para la integracin de sistema usados por diferentes compaas y organizaciones de usuarios.

2.1.1. Introduccin Histrica


En el inicio de la era de la informtica las computadoras eran grandes y caras. Debido a su escasez y coste, stas funcionaban de forma independiente entre ellas. A partir de los aos 70, surgen los primeros miniordenadores, que competiran con los grandes ordenadores tanto por las prestaciones como por su precio, con lo que se extendi su uso. Los grandes sistemas centralizados fueron dejando paso lentamente a sistemas mucho ms descentralizados, y formados por varios ordenadores o a sistemas multiprocesador. Pronto surgieron nuevas necesidades de interconexin de los equipos, y se desarrollaron las redes de rea local (LAN), como Ethernet o Token ring. En la actualidad, Internet es la red de mayor tamao y la ms usada, y mantiene un impresionante ritmo de crecimiento. Adems, Internet es la base de muchos nuevos proyectos de sistemas distribuidos. 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. Desde el inicio de la era de la computadora moderna (1945), hasta cerca de 1985, solo se conoca la computacin centralizada [25, Tanenbaum]. A partir de la mitad de la dcada de los ochentas aparecen dos avances tecnolgicos fundamentales: - Desarrollo de microprocesadores poderosos y econmicos con arquitecturas de 8, 16, 32 y 64 bits. - Desarrollo de redes de rea local (LAN) de alta velocidad, con posibilidad de conectar cientos de mquinas a velocidades de transferencia de millones de bits por segundo (mb/seg). Aparecen los sistemas distribuidos, en contraste con los sistemas centralizados. Los sistemas distribuidos necesitan un software distinto al de los sistemas centralizados. Los S. O. para sistemas distribuidos han tenido importantes desarrollos pero todava existe un largo camino por recorrer. Los usuarios pueden acceder a una gran variedad de recursos computacionales: - De hardware y de software. - Distribuidos entre un gran nmero de sistemas computacionales conectados. Un importante antecedente de las redes de computadoras lo constituye Arpanet, iniciada en 1968 en los EE. UU. Abarcan los servicios de los SO de red, logrando integrar recursos (impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola maquina virtual que el usuario accesa en forma transparente. Las razones para crear o adoptar sistemas distribuidos se dan por dos razones principales: Necesidad (debido a que los problemas a resolver son inherentemente distribuidos). Desea tener mas confiabilidad y disponibilidad de recursos

2.1.2. Caractersticas de los DOS


- Distribuye los clculos entre diferentes procesadores - Principalmente su objetivo es compartir recursos y datos entre usuarios ofreciendo transparencia - Son sistemas dbilmente acoplados; cada procesador tiene su propia memoria local; los procesadores se comunican entre si a travs de varias lneas de comunicacin, tales como buses de alta velocidad o lneas telefnicas - Gestiona los dispositivos de diferentes nodos ofreciendo a usuarios la misma visin que un sistema centralizado. - Adems de las siguientes ventajas:

2.1.3. Ventajas del DOS


Transparencia El 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 los 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. Eficiencia La 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. Flexibilidad Un 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 monoltico Como 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 recompilacin del ncleo. Microncleo La 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 recompilacin 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. Escalabilidad Un 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. Fiabilidad

Una 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. 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. Economa: El cociente precio/desempeo de la suma del poder de los procesadores separados contra el poder de uno solo centralizado es mejor cuando estn distribuidos Sincronizacin La sincronizacin es un punto clave para los sistemas operativos distribuidos. Para computadores nicos no es nada importante, pero en el caso de los recursos compartidos de la red, la sincronizacin es sumamente importante. Tolerancia a Fallos Los sistemas informticos a veces fallan. Cuando se producen fallos en el software o en el hardware, los programas podran producir resultados incorrectos o podran pararse antes de terminar la computacin que estaban realizando. El diseo de sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre s: Redundancia hardware (uso de componentes redundantes) y recuperacin del software (diseo de programas que sean capaces de recuperarse de los fallos). En los sistemas distribuidos la redundancia puede plantearse en un grano mas fino que el hardware, pueden replicarse los servidores individuales que son esenciales para la operacin continuada de aplicaciones crticas. La recuperacin del software tiene relacin con el diseo de software que sea capaz de recuperar (roll-back) el estado de los datos permanentes antes de que se produjera el fallo. Los sistemas distribuidos tambin proveen un alto grado de disponibilidad en la vertiente de fallos hardware. La disponibilidad de un sistema es una medida de la proporcin de tiempo que esta disponible para su uso. Un fallo simple en una maquina multiusuario resulta en la no disponibilidad del sistema para todos los usuarios. Cuando uno de los componentes de un sistema distribuidos falla, solo se ve afectado el trabajo que estaba realizando el componente averiado. Un usuario podra desplazarse a otra estacin de trabajo; un proceso servidor podra ejecutarse en otra maquina.

2.1.4. Desventajas De Los DOS:


Por muy maravillosos que nos puedan pareces los sistemas operativos distribuidos, tambin tienen sus desventajas. La sincronizacin del sistema es una tarea rdea de la cual nunca se descansa y la estandarizacin del sistema es un tanto complicada y limitante. Debido a que no todos los sistemas operativos son de de carcter distribuido enlazar los distintos

tipos de sistemas operativos es un poco complicado. El inters de hacer el SOD lo mas transparente posible lo hace muy complicado en su programacin y el lograr que el sistema operativo no tenga problemas para que no cause problemas a otros equipos que le asignaron tareas es un poco dificultoso. Algunas desventajas mas son: Reducida capacidad para mantener depsitos de recursos de memoria y procesador entre nodos distintos. Aumento de la dependencia con respecto al rendimiento y la fiabilidad de la red. Debilidad en la seguridad. Administracin y mantenimiento ms complejos del sistema. ELEMENTO DESCRIPCIN Software Redes seguridad Existe poco software para los sistemas distribuidos en la actualidad. La red se puede saturar o causar otros problemas. Un acceso sencillo tambin aplica a datos secretos.

2.1.5. Sistemas Operativos Distribuidos Existentes


Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes:

Sprite Solaris-MC Mach Chorus Spring Amoeba Taos Seti, etc.

2.2. ESTRUCTURA Y COMPONENTES DEL SISTEMA


Como ya se defini anteriormente un sistema operativo distribuido consiste en una coleccin de computadores conectados por una red de comunicaciones, que el usuario percibe como un solo sistema (no necesita saber qu cosas estn en qu mquinas). El usuario accesa los recursos remotos de la misma manera en que accesa recursos locales, o un grupo de computadores que usan un software para conseguir un objetivo en comn. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se descompone otro componente debe de ser capaz de reemplazarlo. El objetivo de un sistema distribuido es integrar los recursos y servicios conectados por una red de comunicacin. Desde el punto de vista del usuario y de las aplicaciones, un sistema distribuido proporciona una visin de mquina nica y no difiere de uno centralizado (Figura 1). En cambio, el punto de vista del diseador (el sistema como gestor de los recursos) la estructura interna est

condicionada por la distribucin fsica de los recursos (Figura 2).

Figura 1: Un sistema distribuido desde el punto de vista del usuario.

Lo habitual es que el sistema operativo integre los servicios de red, que ofrecen protocolos abiertos de comunicacin, como es el caso de TCP y UDP. Sobre estos se disponen los soportes adicionales para la comunicacin distribuida, como es el caso de RPC, RMI o DSM, y los servicios especficos que proporcionan las propiedades del sistema distribuido (servicios middleware), como es el caso de la gestin de tiempos, eventos y estado global, sobre los que se asientan las aplicaciones.

Figura 2: Estructura de un sistema distribuido.

El tamao de un sistema distribuido puede ser muy variado, ya sean decenas de hosts (Local Area Network), centenas de hosts (Metropolitan Area Network), y miles o millones de hosts (Internet).

Ejemplo de sistema distribuido simple

2.2.1. Estructura General De Los DOS

Menos autonoma entre computadores Da la impresin de que solo hay un sistema operativo controlando la red

2.2.2. Estructura General De Un Sistema Distribuido Basado En Middleware

Middelware es una capa adicional por encima de un sistema operativo de red, que implementa servicios de propsito general. Middlware es una capa de software intermedia. En los Sistemas distribuidos basados en Middlware, los protocolos usados por cada capa middlware deben ser los mismos as como las interfaces que ofrecen a las aplicaciones. Middleware es un software que enmascara el hardware y los sistemas operativos. Se aplican en los sistemas distribuidos como sistema de comunicacin que proporciona alto grado

de transparencia, administracin de recursos por nodos, no tienen el mismo sistema operativo en todos los nodos y ofrece n numero de copias del sistema operativo. En sistemas distribuidos: El Middleware es un software de conectividad que permite ofrecer un conjunto de servicios que hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogneas. Funciona como una capa de abstraccin de software distribuida que se sita entre las capas de aplicaciones y las capas inferiores (sistema operativo y red). El Middleware nos abstrae de la complejidad y heterogeneidad de las redes de comunicaciones subyacentes, as como de los sistemas operativos y lenguajes de programacin, proporcionando una API para la fcil programacin y manejo de aplicaciones distribuidas.

2.3. MODELOS DE SISTEMA


La mayora de los sistemas distribuidos se componen de uno o ms variedades de modelos de arquitectura. El modelo cliente-servidor es el ms usado; el Web y otros servicios de Internet tales como ftp, news, mail as como el DNS se basan en este modelo, as como el sistema local de archivos y otros ms.

Los servicios de DNS tiene un nmero de usuarios grande y tratan con una gran cantidad de informacin se basan en mltiples servidores, el uso de particiones sobre los datos y la replicacin para facilitar la disponibilidad y la tolerancia frente a fallos. El uso de cache en los clientes y servidores Proxy se encuentran ampliamente extendido para mejorar las prestaciones de un servicio. En el modelo de proceso de igual a igual, los procesos de aplicaciones distribuidas se comunican uno con el otro directamente sin emplear servidores intermediarios. La posibilidad de mover cdigo de un proceso a otro ha desembocado en algunas variantes del modelo cliente servidor. El ejemplo ms comn de esto es el APPLET cuyo cdigo es aportado por un servidor Web para ejecutarse en un cliente, proporcionando funcionalidades no disponibles en el cliente y la mejora de ciertas prestaciones debido a la proximidad con el cliente. La existencia de computadoras porttiles, PDA y otros dispositivos digitales y su integracin en los sistemas distribuidos permite que los usuarios accedan a servicios locales y de Internet aunque estn lejos de su computadora de sobremesa. La presencia de dispositivos de computacin con

posibilidades de comunicacin inalmbrica en aparatos cotidianos como las mquinas lavadoras o las alarmas antirrobo les permite dar servicios accesibles desde una red inalmbrica en el hogar. Una caracterstica de los dispositivos mviles de los sistemas distribuidos es que pueden estar conectados o desconectados impredeciblemente, conduciendo a requisitos de descubrimiento de servicios mediante los que los servidores mviles pueden ofrecer sus servicios y los clientes mviles pueden buscarlos. Existen modelos de interaccin, fallo y seguridad que identifican las caractersticas comunes de los componentes bsicos con que se construyen los sistemas distribuidos. El modelo de interaccin tiene que ver con las prestaciones de los procesos y los canales de comunicacin y con la ausencia de un reloj global. Tambin define un modelo asncrono como uno en el que no hay lmites en el tiempo de ejecucin de un proceso, el tiempo de reparto de un mensaje, y la deriva de los relojes; siendo as como se comporta la Internet. El modelo de fallo clasifica los fallos de los procesos y los canales de comunicacin bsicos en un sistema distribuido. El enmascaramiento es una tcnica con la que se construye un servicio ms fiable sobre otro menos fiable, de modo que se enmascaran algunos fallos que exhibe este ltimo. En particular, se puede construir un sistema de comunicacin fiable desde un canal de comunicacin bsico simplemente enmascarando sus fallos. Por ejemplo, sus fallos por omisin pueden enmascararse mediante la retransmisin de los mensajes perdidos. La integridad es una propiedad de la comunicacin fiable, y requiere que un mensaje al ser recibido sea idntico al que se envi. La validez es otra propiedad; requiere que cualquier mensaje puesto en el bfer de mensajes de salida se reparta eventualmente en el bfer de mensajes entrantes. El modelo de seguridad identifica las posibles amenazas a los procesos y los canales de comunicacin en un sistema distribuido abierto. Algunas de estas amenazas se relacionan con la integridad: Los usuarios mal intencionados pueden modificar o repetir los mensajes. Otros amenazan su privacidad. Otra cuestin de privacidad es la autentificacin del principal (usuario o servidor) en cuyo nombre se enva un mensaje. Los canales seguros emplean tcnicas criptogrficas para asegurar la privacidad y la integridad de los mensajes y para autenticar pares de principales en una comunicacin.

2.4. ESTNDAR ISO OSI

Capas, interfaces y protocolos en el modelo OSI.

Para el envo de mensajes se usa el estndar ISO OSI (interconexin de sistemas abiertos), un modelo por capas para la comunicacin de sistemas abiertos. Las capas proporcionan varias interfaces con diferentes niveles de detalle, siendo la ltima la ms general. El estndar OSI define las siguientes siete capas: fsica, enlace de datos, red, transporte, sesin, presentacin y aplicacin. El modelo OSI distingue dos tipos de protocolos, los orientados hacia las conexiones y los protocolos sin conexin. En los primeros, antes de cualquier envo de datos se requiere una conexin virtual, que tras el envo deben finalizar. Los protocolos sin conexin no requieren este paso previo, y los mensajes se envan en forma de datagramas.

2.5. REDES E INTERCONEXIN DE REDES


Las redes de paquetes y los protocolos a capas son la base de las comunicaciones en los sistemas distribuidos. Las redes de rea local se basan en la difusin paquetes en un medio comn; y Ethernet es la tecnologa dominante. Las redes de rea amplia se basan en la conmutacin de paquetes para encaminar los paquetes hacia sus destinos a travs de la red conectada. El encadenamiento es el mecanismo clave y son varios los algoritmos de encaminamiento utilizados, de los cuales el de vectores de distancia es el ms bsico pero efectivo. Es necesario un control de la congestin para prevenir el desbordamiento de los bferes en el receptor y en los nodos intermedios. Las interredes se construyen colocando una capa virtual de protocolo interred sobre la coleccin de redes unidas por los routers. Los protocolos de Internet TCP/IP hacen posible que los

computadores en Internet se comuniquen con cualquier otro de una forma uniforme, independientemente de que se encuentren en la misma red de rea local o en pases diferentes. Los estndares de Internet incluyen varios protocolos del nivel de aplicacin que resultan adecuados para su uso en aplicaciones distribuidas a gran escala. IPv6 tiene el espacio de direccionamiento necesario para la evolucin futura de Internet y aporta los medios para satisfacer los requisitos de las nuevas aplicaciones tales como calidad de servicio y seguridad. Los usuarios mviles tienen soporte IP mvil en su deambular por reas amplias, y por las LAN inalmbricas basadas en el IEEE 802.11 para una conectividad local. ATM ofrece un ancho de banda muy alto en comunicaciones asncronas basadas en circuitos virtuales con calidad de servicio garantizada.

2.6. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS


La 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. Para los sistemas distribuidos de rea amplia relativamente lentos, se utilizan los protocolos con capas orientadas hacia la conexin, como OSI y TCP/IP, puesto que el problema principal por resolver es el transporte confiable de los bits a travs de lneas fsicas y pobres. Para los sistemas distribuidos basados en LAN, los protocolos con capas se utilizan muy poco. En vez de ellos, se adopta por lo general un modelo mucho ms sencillo, donde el cliente enva un mensaje al servidor y ste enva de regreso una respuesta al cliente. Se puede lograr un desempeo mucho mejor al eliminar la mayor parte de las capas. Muchos de los aspectos del diseo en estos sistemas de transferencia de mensajes se refieren a las primitivas de comunicacin: bloqueo vs. No bloqueo, almacenamiento en buffer vs. No almacenamiento, confiable vs. No confiable, etc. El problema con el modelo bsico cliente-servidor es que, desde el punto de vista conceptual, la comunicacin entre procesos se maneja como E/S. Para presentar mejor, se utiliza mucho la llamada a procedimientos remotos (RPC). Con RPC, un proceso cliente que se ejecuta en una mquina llama a un procedimiento que se ejecuta en otra. El sistema de tiempo de ejecucin, inmerso en los procedimientos de resguardo, maneja la recoleccin de parmetros, la construccin de mensajes y la interfaz con el ncleo para el desplazamiento real de los bits. Aunque RPC est un paso delante de la simple transferencia de mensajes, tiene sus propios problemas. Hay que localizar al servidor correcto. Es difcil la transferencia de los apuntadores y estructuras de datos complejos. Es difcil utilizar variables globales. La semntica precisa de RPC es un tanto truculenta, puesto que los clientes y servidores pueden fallar en forma independiente entre si.

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

2.6.2. El reloj
La 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.

2.6.3. Otros problemas de sincronizacin


El reloj es nicamente uno de tantos problemas de sincronizacin que existen en los sistemas distribuidos. A continuacin planteamos otros problemas relacionados con la sincronizacin. En el momento de modificar unos datos compartidos, los procesos deben lograr la exclusin mutua que garantice que dos procesos no modifiquen los datos a la vez. Algunos algoritmos distribuidos requieren que un proceso funcione como coordinador. Es necesario establecer ciertos algoritmos de eleccin de estos procesos. Es necesario ocultar las tcnicas de sincronizacin mediante la abstraccin de las transacciones atmicas, que permitan a los programadores salvar los detalles de la programacin con sincronizacin. Soluciones frente a bloqueos son bastante ms complejas que en sistemas con un nico procesador.

2.7. PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS


En muchos sistemas distribuidos, es posible tener muchos hilos de control dentro de un proceso, ya que un proceso est formado por un entorno de ejecucin de hilos. Aunque los hilos de control no son una caracterstica inherente de los sistemas operativos distribuidos, la mayora de stos tienen un paquete de hilos. Un hilo es un tipo de proceso ligero, que comparte el espacio de direcciones con uno o ms hilos. Cada hilo tiene su propio contador de programa, su propia pila y se planifica de forma independiente de los dems hilos. Cuando un hilo hace una llamada al sistema con bloqueo, los otros hilos del mismo espacio de direcciones no se ven afectados. Los paquetes de hilos se pueden implantar en el espacio del usuario o en el espacio del ncleo, pero de cualquier forma hay que resolver algunos problemas. Se utilizan por lo comn dos modelos de organizacin de los procesadores: el modelo de estacin de trabajo y el de la pila de procesadores. En el primero, cada usuario tiene su propia estacin de trabajo y a veces puede ejecutar procesos en las estaciones de trabajo inactivas. En el segundo, todas las instalaciones de cmputo son un recurso compartido. Los procesadores se asignan de manera dinmica a los usuarios conforme sea necesario y se regresen a la pila al terminar el trabajo. Tambin son posibles lo modelos hbridos. Dada una coleccin de procesadores, se necesita un algoritmo para signar los procesos a los procesadores. Tales algoritmos pueden ser deterministas o heursticos, centralizados o distribuidos, ptimos o subptimos, locales o globales, iniciados por el emisor o por el receptor. Aunque los procesos se planifican por lo general de manera independiente, se puede mejorar el desempeo mediante la coplanificacin, para garantizar que los procesos que deben comunicarse se ejecutan al mismo tiempo. La tolerancia de fallas es importante en muchos sistemas distribuidos. Se puede lograr mediante la redundancia: existen tres tipos posibles; 1) redundancia de la informacin, se agregan algunos bits para poder recuperar los bits revueltos, 2) redundancia del tiempo, se realiza una accin, y entonces, en caso necesario, se vuelve a realizar, 3) la redundancia fsica, se agrega un equipo adicional para permitir que el sistema como un todo tolere la prdida o el mal funcionamiento de algunos componentes; la rplica activa: es una tcnica muy conocida para proporcionar la tolerancia de fallas mediante la redundancia fsica; la rplica con respaldo primario: la idea esencial del mtodo de respaldo primario es que en cualquier instante, un servidor es el primario y realiza todo el trabajo. Si el primero falla, el respaldo ocupa su lugar. Por ltimo, los sistemas distribuidos de tiempo real tambin son importantes. Vienen en dos tipos: tiempo real suave y tiempo real duro. Los sistemas activados por eventos son controlados por las interrupciones., mientras que los sistemas activados por el tiempo muestrean los dispositivos externos a intervalos fijos de tiempo. La comunicacin de tiempo real debe utilizar protocolos predecibles, como los anillos de fichas o TDMA. Es posible la planificacin dinmica y esttica de las tareas. La planificacin dinmica ocurre al tiempo de ejecucin; la planificacin esttica ocurre de antemano.

2.8. SEGURIDAD
Los ataques a la seguridad son parte de la realidad de los sistemas distribuidos. Es esencial proteger los canales e interfaces de comunicacin de cualquier sistema que trate con informacin que sea susceptible de ser atacada. Los protocolos de seguridad se disean cuidadosamente para evitar trampas. El diseo de los sistemas seguros parte de un listado de premisas de ataque y un conjunto de peores casos posibles. Los mecanismos de seguridad se basan en la criptografa de

clave pblica y de clave secreta. Los algoritmos criptogrficos disfrazan los mensajes de forma que no puede revestirse el proceso sin el conocimiento de la clave de desencriptacin. La criptografa de clave secreta es simtrica: la misma clave sirve tanto para la encriptacin como para la desencriptacin. Si dos partes comparten una clave secreta, podrn cambiar informacin encriptada sin riesgo de que sea descubierta o modificada y con garantas de autenticidad. La criptografa de clave pblica es asimtrica: se utilizan claves separadas para la encriptacin y la desencriptacin, y el conocimiento de una de ellas no implica el de la otra. Una de ellas se hace pblica, de modo que cualquiera puede enviar mensajes seguros al propietario de la correspondiente clave privada y permitiendo al poseedor de la clave privada firmar mensajes y certificados. Los certificados pueden servir como credenciales para el uso de recursos protegidos. Los recursos se protegen mediante mecanismos de control de acceso. Los esquemas de control de acceso asignan derechos a principales (propietarios de las credenciales) para realizar operaciones sobre objetos y colecciones de objetos distribuidos. Se pueden mantener los derechos en listas de control de acceso (ACL) asociados a conjuntos de objetos o pueden mantenerse en manos de los principales bajo la forma de habilitaciones: claves infalsificables de acceso a conjuntos de recursos. Las habilitaciones son una forma conveniente de delegacin de derechos de acceso son difciles de revocar. Los cambios en una ACL tienen efecto inmediatamente, revocando los derechos de acceso previos, pero son ms difciles y costosas de manejar que las habilitaciones.

2.9. SISTEMA DE ARCHIVOS DISTRIBUIDOS


A diferencia de los sistemas de archivos clsicos, un sistema de archivos distribuido debe ser descentralizado, transparente y tolerante a fallos.

2.9.1. Transparencia
El 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.

2.9.2. Fallos del sistema


Que 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 cach para agilizar el acceso a los archivos tambin es recomendable, pero este caso requiere analizar con especial atencin la consistencia del sistema. Las caractersticas fundamentales de diseo para sistemas de archivos distribuidos son: La utilizacin efectiva de la memoria cach en el cliente para conseguir iguales prestaciones o mejores que las de los sistemas de archivos locales. El mantenimiento de la consistencia entre mltiples copias de archivos en las cachs de los clientes cuando son actualizadas.

La recuperacin despus de un fallo en el servidor o en el cliente. El alto rendimiento en la lectura y escritura de archivos de todos los tamaos. La escalabilidad. El corazn de cualquier sistema distribuido es el sistema distribuido de archivos. El diseo de dicho sistema comienza en la interfaz: Cul es el modelo de archivo y qu funcionalidad debe proporcionar? Por regla, la naturaleza de un archivo no debe ser diferente en el caso distribuido y en el caso de un procesador. Como es usual, una parte importante de la interfaz la forman los nombres de los archivos y el sistema de directorios. El problema de los nombres trae consigo el aspecto de la transparencia. La implantacin de un sistema distribuido de archivos implica la toma de varias decisiones: ver si el sistema es con estado o sin estado, si se debe hacer el ocultamiento y la forma de administrar la rplica de archivos. Cada una de estas decisiones tiene consecuencias de gran alcance para los diseadores y los usuarios. Los sistemas de archivos distribuidos son empleados intensamente en la computacin de las organizaciones y sus prestaciones han estado sujetas a muchos ajustes. Los futuros sistemas distribuidos de archivos probablemente tengan que enfrentar los cambios en la tecnologa del hardware, la escalabilidad, los sistemas de rea amplia, los usuarios mviles y la tecnologa de fallas, as como la introduccin de multimedia.

2.10. MEMORIA COMPARTIDA DISTRIBUIDA


La memoria compartida distribuida o DSM es una abstraccin que se propone como alternativa a la comunicacin por mensajes. Los sistemas de cmputo con varios CPU caen en alguna de dos categoras: los que tienen memoria compartida y los que no. Las mquinas de memoria compartida (multiprocesadores) son ms fciles de programar pero ms difciles de construir, mientras que las mquinas sin memoria compartida (multicomputadoras) son ms difciles de programar pero ms fciles de construir. La memoria distribuida compartida es una tcnica para facilitar la programacin de las multicomputadoras, simulando la memoria compartida en ellas. Los pequeos multiprocesadores se basan con frecuencia en un bus, pero los de gran tamao utilizan conmutadores. Los protocolos utilizados por los de gran tamao requieren estructuras de datos y algoritmos complejos para mantener la consistencia de los cachs.

2.10.1. Memoria compartida basada en pginas


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

2.10.2. Memoria compartida basada en objetos


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

2.10.3. Modelos de consistencia


La 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. Las principales cuestiones de diseo e implementacin son la estructura DSM, la forma de sincronizar las aplicaciones, el modelo de consistencia de memoria, la utilizacin de protocolos de escritura actualizante o de invalidacin de escritura, la granularidad de la comparticin y el thrashing. DSM puede estructurarse como una serie de bytes, como una coleccin de objetos compartidos o como una coleccin de datos inmutables como las tuplas. Las aplicaciones en DSM necesitan la sincronizacin para cumplir los requisitos de consistencia especficos de la aplicacin. Para este propsito utilizan objetos como los bloqueos, implementados utilizando paso de mensajes por razones de eficiencia. El modelo de consistencia ms estricto implementado en los sistemas DSM es la consistencia secuencial. Debido a su costo, se han desarrollado otros modelos de consistencia ms dbiles, como la coherencia y la consistencia relajada. La consistencia relajada permite a la implementacin utilizar los objetos de sincronizacin para conseguir mayor eficiencia sin romper las restricciones de consistencia del nivel de aplicacin. Existen otros modelos de consistencia, incluyendo la consistencia de entrada, la de mbito y la dbil, todas ellas basadas en la sincronizacin. Los protocolos de escritura actualizante son aquellos en los que las actualizaciones de los datos son propagadas a todas sus copias. Normalmente son implementadas en hardware, a pesar de que tambin existen implementaciones software que utilizan multidifusiones totalmente ordenadas. Los protocolos de invalidacin de escritura evitan la lectura de datos no vlidos mediante la invalidacin de todas las copias cuando los datos son actualizados. Estos protocolos se adaptan mejor a los sistemas DSM basados en pginas, para los que la escritura actualizante puede ser una opcin costosa. La granularidad de DSM modifica la probabilidad de contencin entre procesos con comparticin falsa de datos ya que dichos estn contenidos en la misma unidad de comparticin. Tambin afecta el costo por byte de la transferencia de actualizaciones entre computadores. El thrashing puede ocurrir cuando se utiliza invalidacin de escritura. Consiste en la transferencia repetida de datos entre procesos competidores a costa del progreso de la aplicacin. Este efecto puede ser reducido mediante la sincronizacin a nivel de aplicacin, permitiendo a los computadores retener una pgina durante una mnima cantidad de tiempo, o mediante el etiquetado a los datos de forma que las lecturas y las escrituras sean concebidas conjuntamente.

Sistemas Operativos distribuidos. Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores est en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas bsicos de stos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema dbilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local. Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo. Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc. Caractersticas de los Sistemas Operativos distribuidos: Coleccin de sistemas autnomos capaces de comunicacin y cooperacin mediante interconexiones hardware y software . Gobierna operacin de un S.C. y proporciona abstraccin de mquina virtual a los usuarios. Objetivo clave es la transparencia. Generalmente proporcionan medios para la comparticin global de recursos. Servicios aadidos: denominacin global, sistemas de archivos distribuidos, facilidades para distribucin de clculos (a travs de comunicacin de procesos internodos, llamadas a procedimientos remotos, etc.).

http://www.google.co.ve/search?q=sistemas+operativos+distribuidos&hl=es419&tbo=u&biw=1366&bih=653&tbm=isch&source=univ&sa=X&ei=64D3UNi6DOq Q0QHk04GYCA&ved=0CCoQsAQ http://somultiprocesador-ydistribuidos.wikispaces.com/Sistemas+Operativos+Distribuidos http://www.monografias.com/trabajos6/sidi/sidi.shtml http://www.slideshare.net/carlos7489/sistemas-operativos-distribuidos


Introduccin Histrica En el inicio de la era de la informtica las computadoras eran grandes y caras. Debido a su escasez y coste, stas funcionaban de forma independiente entre ellas. A partir de los aos 70, surgen los primeros miniordenadores, que competiran con los grandes ordenadores tanto por las prestaciones como por su precio, con lo que se extendi su uso. Los grandes sistemas centralizados fueron dejando paso lentamente a sistemas mucho ms descentralizados, y formados por varios ordenadores o a sistemas multiprocesador. Pronto surgieron nuevas necesidades de interconexin de los equipos, y se desarrollaron las redes de rea local (LAN), como Ethernet o Token ring. En la actualidad, Internet es la red de mayor tamao y la ms usada, y mantiene un impresionante ritmo de crecimiento. Adems, Internet es la base de muchos nuevos proyectos de sistemas distribuidos. 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. 2. Conceptos de los sistemas distribuidos 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. Transparencia

El 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 los 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. Eficiencia La 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. Flexibilidad Un 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 monoltico Como 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 recompilacin del ncleo. Microncleo La 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 recompilacin 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. Escalabilidad Un 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. Fiabilidad Una 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. 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. 3. El estndar ISO OSI Para el envo de mensajes se usa el estndar ISO OSI (interconexin de sistemas abiertos), un modelo por capas para la comunicacin de sistemas abiertos. Las capas proporcionan varias interfaces con diferentes niveles de detalle, siendo la ltima la ms general. El estndar OSI define las siguientes siete capas: fsica, enlace de datos, red, transporte, sesin, presentacin y aplicacin. El modelo OSI distingue dos tipos de protocolos, los orientados hacia las conexiones y los protocolos sin conexin. En los primeros, antes de cualquier envo de datos se requiere una conexin virtual, que tras el envo deben finalizar. Los protocolos sin conexin no requieren este paso previo, y los mensajes se envan en forma de datagramas. 4. Modo de transmisin asncrona ATM El 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. RPC Otro 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. 5. Comunicacin en grupo La 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 reloj La 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 Lamport Tras el intento de sincronizar todos los relojes, surge la idea de que no es necesario que todos los relojes tengan la misma hora exacta, sino que simplemente mantengan una relacin estable de forma que se mantenga la relacin de qu suceso ocurri antes que otro suceso cualquiera. Este algoritmo se encarga exclusivamente de mantener el orden en que se suceden los procesos. En cada mensaje que se enva a otro ordenador se incluye la hora. Si el receptor del mensaje tiene una hora anterior a la indicada en el mensaje, utiliza la hora recibida incrementada en uno para actualizar su propia hora. Algoritmo de Cristian Consiste en disponer de un servidor de tiempo, que reciba la hora exacta. El servidor se encarga de enviar a cada ordenador la hora. Cada ordenador de destino slo tiene que sumarle el tiempo de transporte del mensaje, que se puede calcular de forma aproximada. Algoritmo de Berkeley La principal desventaja del algoritmo de Cristian es que todo el sistema depende del servidor de tiempo, lo cual no es aceptable en un sistema distribuido fiable. El algoritmo de Berkeley usa la hora de todos los ordenadores para elaborar una media, que se reenva para que cada equipo actualice su propia hora ralentizando el reloj o adoptando la nueva hora, segn el caso. 6. Otros problemas de sincronizacin El reloj es nicamente uno de tantos problemas de sincronizacin que existen en los sistemas distribuidos. A continuacin planteamos otros problemas relacionados con la sincronizacin. En el momento de modificar unos datos compartidos, los procesos deben lograr la exclusin mutua que garantice que dos procesos no modifiquen los datos a la vez. Algunos algoritmos distribuidos requieren que un proceso funcione como coordinador. Es necesario establecer ciertos algoritmos de eleccin de estos procesos.

Es necesario ocultar las tcnicas de sincronizacin mediante la abstraccin de las transacciones atmicas, que permitan a los programadores salvar los detalles de la programacin con sincronizacin. Soluciones frente a bloqueos son bastante ms complejas que en sistemas con un nico procesador. 7. Sistema de archivos A diferencia de los sistemas de archivos clsicos, un sistema de archivos distribuido debe ser descentralizado, transparente y tolerante a fallos. Transparencia El 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 sistema Que 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 acceso Debido 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 pginas El 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 objetos Una 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 consistencia La 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. 8. Bibliografa Andrew S. Tanenbaum: "Sistemas Operativos Distribuidos", Prentice Hall (1996). George Coulouris, Jean Dollimore, Tim Kindberg: "Distributed Systems, Concepts and Design", AddisonWesley (1994).

Вам также может понравиться