SISTEMAS DISTRIBUIDOS TRABAJO.doc

47
Capítulo I 1. Historia de los sistemas distribuidos La computación desde sus inicios ha sufrido muchos cambios, desde los grandes ordenadores que permitían realizar tareas en forma limitada y de uso un tanto exclusivo de organizaciones muy selectas, hasta los actuales ordenadores ya sean personales o portátiles que tienen las mismas e incluso mayores capacidades que los primeros y que están cada vez más introducidos en el quehacer cotidiano de una persona . Los mayores cambios se atribuyen principalmente a dos causas, que se dieron desde las décadas de los setenta: 1. El desarrollo de los microprocesadores , que permitieron reducir en tamaño y costo a los ordenadores y aumentar en gran medida las capacidades de los mismos y su acceso a más personas. 2. El desarrollo de las redes de área local y de las comunicaciones que permitieron conectar ordenadores con posibilidad de transferencia de datos a alta velocidad . Es en este contexto que aparece el concepto de "Sistemas Distribuidos" que se ha popularizado tanto en la actualidad y que tiene como ámbito de estudio las redes como por ejemplo: Internet , redes de teléfonos móviles, redes corporativas, redes de empresas , etc. En consecuencia, el presente trabajo que lleva el título de "Sistemas Distribuidos", tiene como principal objetivo : "describir panorámicamente los aspectos relevantes que están involucrados en los Sistemas Distribuidos". Para lograr el objetivo planteado se ha estructurado el trabajo de la siguiente manera: 1. Introducción.- Donde especificamos el preámbulo del tema, el objetivo del trabajo y el contenido del mismo.

Transcript of SISTEMAS DISTRIBUIDOS TRABAJO.doc

Captulo I1. Historia de los sistemas distribuidos

Lacomputacindesde sus inicios ha sufrido muchos cambios, desde los grandes ordenadores que permitan realizar tareas en forma limitada y de uso un tanto exclusivo deorganizacionesmuy selectas, hasta los actuales ordenadores ya sean personales o porttiles que tienen las mismas e incluso mayores capacidades que los primeros y que estn cada vez ms introducidos en el quehacer cotidiano de unapersona.Los mayores cambios se atribuyen principalmente a dos causas, que se dieron desde las dcadas de los setenta:1. Eldesarrollode losmicroprocesadores, que permitieron reducir en tamao ycostoa los ordenadores y aumentar en gran medida las capacidades de los mismos y su acceso a ms personas.2. El desarrollo de lasredesde rea local y de lascomunicacionesque permitieron conectar ordenadores con posibilidad de transferencia dedatosa altavelocidad.Es en este contexto que aparece elconceptode "SistemasDistribuidos" que se ha popularizado tanto en la actualidad y que tiene como mbito de estudio las redes como por ejemplo:Internet, redes de telfonos mviles, redes corporativas, redes deempresas, etc.En consecuencia, el presentetrabajoque lleva el ttulo de "Sistemas Distribuidos", tiene como principalobjetivo: "describir panormicamente los aspectos relevantes que estn involucrados en los Sistemas Distribuidos".Para lograr el objetivo planteado se ha estructuradoel trabajode la siguiente manera:1. Introduccin.- Donde especificamos el prembulo del tema, el objetivo del trabajo y el contenido del mismo.2. Desarrollo.- Donde se describen los aspectos involucrados en lossistemas distribuidos.3. Referencias.- Donde especificamos lasfuentesque fueron consultadas para el presente estudio.2. Que es un sistema distribuido

Un sistema distribuido se define como una coleccin de computadoras separadas fsicamente y conectadas entre s por unared de comunicaciones; cada mquina posee sus componentes de hardware y software que el programador percibe como un solo sistema (no necesita saber qu cosas estn en qu mquinas). El programador accede a los componentes de software (objetos) remotos, de la misma manera en que accedera a componentes locales, en un grupo de computadoras que usan un middleware entre los que destacan (RPC) ySOAPpara conseguir un objetivo.

Los sistemas distribuidos deben ser muy confiables, ya que si un componente del sistema se descompone otro componente debe ser capaz de reemplazarlo. Esto se denominatolerancia a fallos.

El tamao de unsistemadistribuido puede ser muy variado, ya sean decenas dehosts(red de rea local), centenas de hosts (red de rea metropolitana), o miles, o millones de hosts (Internet); esto se denominaescalabilidad.1Un sistema distribuido es una coleccin de computadoras independientes queaparecen ante los usuarios del sistema como una nica computadora

Un sistema distribuido es aquel en el que los componentes localizados encomputadores, conectados en red, comunican y coordinan sus acciones nicamentemediante el paso de mensajesCaractersticas de los Sistemas Distribuidos3. Objetivos

TransparenciaLa transparencia se consigue cundo se consigue que a ojos del usuario el sistema se comporte como si fuera un sistema centralizado: El acceso a un recurso remoto deber de ser igual que si se accediera a un recurso local.

Se deber de poder acceder a los distintos recursos sin conocer la localizacin de los mismos, es decir, para acceder a un recurso remoto no habr que conocer de que nodo depende.

Los diferentes recursos (p.e. ficheros) podrn migrar de localizacin sin afectar a los usuarios.

El acceso concurrente a un mismo recurso no afectar a los usuarios.

La existencia de rplicas de los recursos no afectar a los usuarios.

La ocurrencia de fallos en alguno de los nodos no afectar a los usuarios.

El crecimiento del sistema no afectar a los usuarios.

El posible carcter heterogneo de los nodos del sistema no afectar a los usuarios.

FiabilidadLa fiabilidad en los sistemas distribuidos se tiene que buscar desde dos puntos de vista distintos:

Fiabilidad como disponibilidad: es decir, se busca un sistema de alta disponibilidad mediante la redundancia de nodos y recursos.

Fiabilidad como coherencia: se tiene que buscar que la informacin que procesa el sistema siempre sea coherente, aspecto que en sistemas en los que se utiliza la redundancia se dificulta bastante.

RendimientoEl rendimiento que se persigue no debe de ser peor que en un sistema centralizado y debe de ser proporcional al nmero de procesadores empleado. Para conseguirlo se deben de tener unas buenas polticas de equilibrado de carga. En este aspecto el principal problema es que a ms nmero de procesadores ms elementos crticos corren el riesgo de convertirse en cuellos de botella, por ejemplo la red de comunicaciones.EscalabilidadEl diseo del sistema tiene que tratar de evitar, principalmente en sistemas que vayan a contar con un gran nmero de elementos de proceso, los cuellos de botella (p.e.: componentes centralizados, tablas centralizadas, algoritmos centralizados).

Si se disea de forma cuidadosa y planificada, el que el sistema crezca mediante la adicin de nuevos nodos al sistema nos proporcionar un aumento del rendimiento proporcional con el nmero de procesadores que aadamos.FlexibilidadLa flexibilidad se entiende como la capacidad de ampliar o extender el sistema con nuevas funcionalidades de forma sencilla. Un ejemplo claro de la flexibilidad es la que se consigue con el uso de soluciones de sistemas abiertos, ya que al estar basados en estndares y en interfaces y protocolos pblicos no se depende de ningn fabricante a la hora de extender las funcionalidades del mismo.

4. Conceptos de hardware

Concepto de Hardware:Son todos los dispositivos y componentes fsicos que realizan las tareas de entrada y salida, tambin se conoce al hardware como la parte dura o fsica del computador.La mayora de las computadoras estn organizadas de la siguiente forma:Los dispositivos de entrada (Teclados, Lectores de Tarjetas, Lpices pticos, Lectores de Cdigos de Barra, Escner, Mouse, etc.) y salida (Monitor, Impresoras, Plotters, Parlantes, etc.) y permiten la comunicacin entre el computador y el usuario.5. Conceptos de software

Concepto de Software:El software es un ingrediente indispensable para el funcionamiento del computador. Est formado por una serie de instrucciones y datos, que permiten aprovechar todos los recursos que el computador tiene, de manera que pueda resolver gran cantidad de problemas. Un computador en si, es slo un conglomerado de componentes electrnicos; el software le da vida al computador, haciendo que sus componentes funcionen de forma ordenada.El software es un conjunto de instrucciones detalladas que controlan la operacin de un sistema computacional.6. Aspectos de diseo

1. Accesibilidad2. Transparencia3. Apertura4. EscalabilidadAccesibilidad Un sistema distribuido debe garantizar que los recursos puedan ser accedidos de forma rpida y eficiente por usuarios y programas. Con recursos nos referimos a cualquier recurso como almacenamiento, dispositivos de entrada y salida respectivamente, en resumen cualquier recurso. Un ejemplo claro es un sistema de correo electrnico como Hotmail, Gmail o cualquiera. Estos se encuentran disponibles casi un 100% del tiempo lo que permite una accesibilidad idnea. Transparencia La transparencia se refiere al ocultamiento de recursos y procesos para el usuario. El usuario sabe que existen, logran ser transparentes si el usuario no nota la diferencia entre un proceso que se ejecuta localmente y uno que se ejecuta en un equipo remoto. Existen diferentes tipos de transparencia. Como ejemplo una aplicacin como Dropbox, este te brinda un servicio de archivos pero siempre se desconoce que equipo de computo o servidor recibe y sincroniza tus archivos.Apertura Cuando se disea un sistema distribuido, es difcil garantizar que los recursos se recursos se encuentren disponibles de forma eficiente y a la vez sean transparentes, sin tomar en cuenta la seguridad de los mismos. Qu tantas validaciones hay que hacer para que el recurso sea seguro y a la vez eficiente? Cuantas ms precauciones se tome ms trafico en la red se genera y ms difcil ser garantizar la eficiencia de los recursos.Escalabilidad

La escalabilidad se refiere a la posibilidad de agregar ms equipos, logrando que estos se sumen a la red al trabajo colaborativo, conservando la transparencia y todos los aspectos vistos previamente. Si fuesen muchas las complicaciones que representa la adicin de equipos a la red de trabajo (ej. Diferentes sistemas operativos, diferentes tecnologas de procesamiento, etc.), entonces no se cumple con esta caracterstica. 7. Componentes de los sistemas distribuidos

El desarrollo de un sistema distribuido complejo requiere el uso de las siguientes funciones y servicios: Servicios de comunicacin. Sistemas de ficheros y nombrado distribuido. Servicios de sincronizacin y coordinacin. Memoria compartida distribuida. Gestin de procesos. Servicio de seguridad.Estas funcionalidades se plasman en elementos concretos del sistema: componentes, protocolos, algoritmos, soporte hardware/software, ...Servicios de Comunicacin Modelos de interaccin: Cliente/servidor: (2-niveles, 3-niveles o n-niveles) Peer-to-peer: Equilibrio de roles. Intermediarios: Proxy, Dispacher, Caches, ... Unicast vs Multicast Fiabilidad. Sncronos vs Asncronos Tecnologas de comunicacin: Tecnologas de comunicacin: Paso de mensajes: Berkeley sockets. Llamada a procedimientos remotos: RPC. Tecnologas de objetos distribuidos: CORBA, DCOM, EJB Cdigo mvil: Entornos de agentes.Sistemas de Ficheros DistribuidosIdentificacin, localizacin y acceso a elementos del entorno distribuido.Comprende: Sistemas de ficheros distribuidos (SFD): NFS, AFS. Servicios de nombres: DNS, COS-Naming (CORBA). Servicios de directorio: X.500, LDAP, JNDI.Cuestiones: Arquitectura de los servicios. Almacenamiento intermedio: caching. Replicacin y coherencia.Servicios de Sincronizacin y CoordinacinComprende los conceptos de: Tiempo en entornos distribuidos: Sincronizacin de relojes y relojes lgicos. Concurrencia y Paralelismo: Exclusin mutua e interbloqueos. Algoritmos distribuidos: Eleccin de lder, coordinacin, ... Transacciones: Propiedades ACID, modelos de commit/rollback.Afecta a otros servicios: Nombrado e identificacin. Seguridad y fiabilidad. Comunicaciones. ...Memoria Compartida Distribuida (DSM)Hardware: Memoria fsicamente compartida. Memoria distribuida (lgicamente compartida). Acceso uniforme vs acceso no uniforme.Distributed Shared Memory: Basada en pginas. Basada en variables compartidas. Basada en objetos.Modelos de consistenciaGestin de Procesos Taxonoma de los procesos: Niveles de granularidad. Congelacin de procesos (persistencia). Migracin de procesos (estado/cdigo). Planificacin de procesos: Planificacin interna: Procesos y threads. Planificacin global. Migracin y equilibrado de carga. Aprovechamiento de mquinas inactivas.Servicio de SeguridadTipologa de los ataques: Privacidad y confidencialidad. Autenticacin (spoofing). Denegacin de servicio.Modelos y herramientas de seguridad: Cifrado: clave pblica (RSA) y privada (DES). Protocolos de seguridad: IPsec, SSL. Certificados y firmas digitales: X.509. Elementos de seguridad: Firewalls.Entornos seguros: e.g. Kerberos.CAPITULO II1. COMUNICACIN EN LOS SISTEMAS DISTRIBUIDOS

1.1. Protocolo con capas

Debido a la ausencia de memoria compartida, toda la comunicacin en los sistemas distribuidos se basa en latransferencia de mensajes[25, Tanenbaum].

Cuando el procesoAquiere comunicarse con el procesoB: Construye unmensajeen su propio espacio de direcciones.

Ejecuta unallamada al sistemapara que el S. O. busque el mensaje y lo enve a travs de la red haciaB. Para evitar el caos,AyBdeben coincidir en elsignificadode los bits que se enven.

Lospuntos de acuerdo necesariosincluyen lo siguiente: Cuntos voltios hay que utilizar para un bit 0 y cuntos para un bit 1?.

Cmo sabe el receptor cul es el ltimo bit del mensaje?.

Cmo puede detectar si un mensaje ha sido daado o perdido, y qu debe hacer si lo descubre?.

Qu longitud tienen los nmeros, cadenas y otros elementos de datos y cul es la forma en que estn representados?.

LaISO(Organizacin Internacional de Estndares) desarroll unmodelo de referencia que(ver Figura 8.1[25, Tanenbaum]): Identifica en forma clara los distintos niveles.

Estandariza los nombres de los niveles.

Seala cul nivel debe realizar cul trabajo.

Este modelo se denominamodelo de referencia para interconexin de sistemas abiertos(ISO OSIomodelo OSI)[26, Tanenbaum].

Elmodelo OSIest diseado para permitir lacomunicacin de los sistemas abiertos: Son aquellos preparados para comunicarse con cualquier otro sistema abierto mediantereglas estndar: Establecen el formato, contenido y significado de los mensajes recibidos y enviados.

Constituyen losprotocolos, que sonacuerdos en laformaen que debe desarrollarse la comunicacin(ver Figura 8.2[25, Tanenbaum]).

Elmodelo OSIdistingue entredos tipos generales de protocolos: Orientados hacia las conexiones: Antes de intercambiar los datos, el emisor y el receptor:

Establecen en forma explcita una conexin.

Probablemente negocien el protocolo a utilizar.

Al finalizar, deben terminar la conexin.

El telfono es un sistema de comunicacin orientado hacia la conexin.

Sin conexin: No es necesaria una configuracin de antemano.

El emisor transmite el primer mensaje cuando est listo.

El depsito de una carta en un buzn es una comunicacin sin conexin.

Cada capa proporciona unainterfazcon la otra capa por encima de ella; la interfaz consiste de unconjunto de operacionespara definir elservicio que la capa est preparada para ofrecer a sus usuarios.Elprotocolo de la capa nutiliza la informacin de la capan.Cada protocolo de capa se puede cambiar independientemente de los dems:

Esto es de fundamental importancia.

Confiere gran flexibilidad.

La coleccin de protocolos utilizados en un sistema particular se llama unasuite de protocoloopila de protocolo.1.2. Redes con modo de transferencia

Comunicacin en red La diferencia ms importante entre un sistema distribuido y un sistema con un procesador es la comunicacin entre procesos. En un sistema con un procesador se supone la existencia de una memoria compartida, lo cual no existe en un sistema distribuido. La comunicacin entre procesos debe respetar reglas llamadas protocolos. 4.1 Protocolos con capas Para que dos procesos logren la comunicacin se deben poner de acuerdo en varios aspectos como, cuntos voltios hay que utilizar para sealar un bit 0 y un bit 1; cmo detectar el fin de un mensaje, etc. Para facilitar este trabajo la organizacin internacional de estndares (internacional standards organization- ISO) ha desarrollado un modelo de referencia llamado el modelo de referencia para interconexin de sistemas abiertos, lo cual se abrevia como ISO OSI o el modelo OSI. El modelo OSI est diseado para permitir la comunicacin de los sistemas abiertos. Un sistema abierto es aquel preparado para comunicarse con cualquier otro sistema abierto mediante estndares que gobiernan el formato, contenido y significado de los mensajes enviados y recibidos. Un protocolo es un acuerdo entre las partes acerca de cmo debe desarrollarse la comunicacin. El modelo OSI maneja dos tipos generales de protocolos (conexiones). 1. Protocolos orientados a la conexin. Antes de intercambiar datos, el emisor y el receptor deben establecer en forma explcita una conexin y tal vez el protocolo. 2. Protocolos con conexin. No es necesaria una negociacin previa. 4.1.1 Modelo OSI En el modelo OSI, la comunicacin se divide en 7 niveles o capas. Cada capa se maneja de forma independiente y se encarga de un aspecto especfico. Cada capa proporciona una interfaz con la capa por encima de ella. La interfaz es un conjunto de operaciones que juntas definen el servicio que la capa est preparada para ofrecer a sus usuarios. La ventaja de un protocolo por capaz es su independencia, ya que una capa puede modificarse o mejorarse sin afectar a las dems. En el modelo OSI cuando se va a enviar un mensaje, este pasa por todas las capas comenzando en la de Aplicacin. Cada capa le coloca un encabezado al frente o al final, al llegar el mensaje al otro lado, cada capa lo va desmenuzando, quitndole el encabezado que le corresponde; la capa que recibe el mensaje es la capa fsica. Capas Fisica, Enlace de Datos, Red, Transporte, Sesin, Presentacin, Aplicacin Capa fsica Su propsito es transportar el flujo de bits de una computadora a otra. El protocolo de la capa fsica se encarga de la estandarizacin de las interfaces elctricas, mecnicas y de sealizacin. Maneja elementos como la intensidad de la seal de red, cables, enchufes, voltajes, distancias entre cables. Capa de enlace de datos La tarea principal de esta capa es agrupar a los bits en unidades llamadas marcos o tramas, y detectar y corregir errores. Uno de los mecanismos en la deteccin de errores es asignar nmeros secuenciales a las tramas y a cada trama colocarle una suma de verificacin, sino esta correcta la suma de verificacin a la hora de recibir el marco, entonces el receptor le pide al transmisor que vuelva a transmitir el marco x. Capa de red La tarea principal de la capa de red es elegir la mejor ruta (a esta actividad se le llama ruteo), la ruta ms corta no siempre es la mejor, lo importante es la cantidad de retraso, y esto complica los algoritmos de ruteo. La capa de red maneja dos protocolos: X.25 (orientado a la conexin) y el IP (sin conexin). Capa de transporte La tarea de la capa de transporte es proporcionar conexiones confiables y econmicas. Las conexiones confiables (orientadas a la conexin) se pueden construir por arriba de X.25 o IP. En X.25 los paquetes llegan en orden, en IP no, entonces la capa de transporte es la encargada de ponerlos en orden. El protocolo de transporte oficial ISO tiene cinco variantes, TP0, TP1, , TP4. Los protocolos ms utilizados en esta capa son: TCP (transmisin control protocolprotocolo para el control de transmisiones), orientado a la conexin y UDP (universal datagrama protocol- protocolo datagrama universal) que es un protocolo sin conexin. Capa de sesin Esta es en esencia una versin mejorada de la capa de transporte. Proporciona el control del dilogo, facilidades en la sincronizacin, la posibilidad de establecer conexiones llamadas sesiones y la posibilidad de transferir datos sobre las sesiones en forma ordenada. En la prctica rara vez las aplicaciones soportan esta capa. Capa de presentacin Esta capa trata los problemas relacionados con la representacin y el significado de los datos. Capa de aplicacin Es una coleccin de varios protocolos para actividades comunes, como el correo electrnico, la transferencia de archivos y la conexin entre terminales remotas a las computadoras en una red. Esta capa contiene los programas de usuario. Protocolos utilizados: X.400 para correo electrnico, X.500 para el servidor de directorios.1.3. El modelo cliente servidor

Cliente-ServidorDefinicin:Sistema donde el cliente es una mquina que solicita un determinadoservicioy se denomina servidor a la mquina que lo proporciona. Los servicios pueden ser:

Ejecucin de un determinadoprograma.

Acceso a un determinadobancode informacin.

Acceso a un dispositivo de hardware.

Es un elemento primordial, la presencia de un medio fsico de comunicacin entre lasmquinas, y depender de lanaturalezade este medio la viabilidad del sistema.

Categoras de Servidores:A continuacin se presenta una lista de los servidores ms comunes:

Servidores de archivos.-Proporciona archivos para clientes. Si los archivos no fueran tan grandes y los usuarios que comparten esos archivos no fueran muchos, esto sera una gran opcin dealmacenamientoy procesamiento de archivos.El cliente solicita los archivos y el servidor los ubica y se los enva. Servidores de Base de Datos.-Son los que almacenan gran cantidad de datos estructurados, se diferencian de los de archivos pues la informacin que se enva est ya resumida en labase de datos. Ejemplo:El Cliente hace una consulta, el servidor recibe esa consulta (SQL) y extrae solo la informacin pertinente y enva esa respuesta al cliente. Servidores de Software de Grupo.-El software de grupo es aquel, que permite organizar el trabajo de un grupo. El servidor gestiona los datos que dan soporte a estas tareas. Por ejemplo: almacenar las listas de correo electrnico.El Cliente puede indicarle, que se ha terminado una tarea y el servidor se lo enva al resto del grupo. ServidoresWEB.- Son los que guardan y proporcionan PginasHTML.El cliente desde un browser o link hace un llamado de la pgina y el servidor recibe el mensaje y enva la pgina correspondiente. Servidores de correo.-Gestiona el envo y recepcin de correo de un grupo de usuarios (el servidor no necesita ser muy potente). El servidor solo debe utilizar un protocolo de correo.

Servidor de objetos.-Permite almacenar objetos que pueden ser activados a distancia.Los clientes pueden ser capaces de activar los objetos que se encuentran en el servidor. Servidores de impresin.-Gestionan las solicitudes de impresin de los clientes.El cliente enva la solicitud de impresin, el servidor recibe la solicitud y la ubica en la cola de impresin, ordena a laimpresoraque lleve a cabo lasoperacionesy luego avisa a la computadora cliente que ya acabo su respectiva impresin. Servidores de aplicacin.-Se dedica a una nica aplicacin. Es bsicamente una aplicacin a la que pueden acceder los clientes.

Componentes de Software:Se distinguen tres componentes bsicos de software:

Presentacin.-Tiene que ver con la presentacin al usuario de un conjunto de objetos visuales y llevar a cabo el procesamiento de los datos producidos por el mismo y los devueltos por el servidor.

Lgica de aplicacin.-Esta capa es la responsable del procesamiento de la informacin que tiene lugar en la aplicacin.

Base de datos.-Esta compuesta de los archivos que contienen los datos de la aplicacin.

Arquitecturas Cliente / ServidorA continuacin mostramos las arquitecturas cliente-servidor ms populares:

Arquitectura Cliente-Servidor de Dos Capas.-Consiste en una capa de presentacin ylgicade la aplicacin; y la otra de la base de datos. Normalmente estaarquitecturase utiliza en las siguientes situaciones:

Cuando se requiera pocoprocesamiento de datosenla organizacin.

Cuando se tiene una base de datos centralizada en un solo servidor.

Cuando la base de datos es relativamenteesttica.

Cuando se requiere unmantenimientomnimo.

CLIENTE/SERVIDOR DE DOS CAPAS Arquitectura Cliente-Servidor de Tres Capas-Consiste en una capa de la Presentacin, otra capa de la lgica de la aplicacin y otra capa de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones:

Cuando se requiera mucho procesamiento de datos en la aplicacin.

En aplicaciones donde la funcionalidad este en constantecambio.

Cuando losprocesosno estn relativamente muy relacionados con los datos.

Cuando se requiera aislar latecnologade la base de datos para que sea fcil de cambiar.

Cuando se requiera separar elcdigodel cliente para que se facilite el mantenimiento.

Esta muy adecuada para utilizarla con la tecnologa orientada a objetos.

CLIENTE/SERVIDOR DE TRES CAPASClasificacin de los sistemas cliente servidor:A continuacin mostramos la clasificacin de de los sistemas cliente/servidor de acuerdo al nivel de abstraccin del servicio que ofrecen:

1. 2. Representacin distribuida.-Lainteraccincon el usuario se realiza en el servidor, el cliente hace de pasarela entre el usuario y el servidor.

3. Representacin Remota.-La lgica de la aplicacin y la base de datos se encuentran en el servidor. El cliente recibe y formatea los datos para interactuar con el usuario.

4. Lgica Distribuida.-El cliente se encarga de la interaccin con el usuario y de algunasfuncionestriviales de la aplicacin. Por ejemplo controles de rango de campos, campos obligatorios, etc. Mientras que el resto de la aplicacin, junto con la base de datos, estn en el servidor.

5. Gestin Remota de Datos.-El cliente realiza la interaccin con el usuario y ejecuta la aplicacin y el servidor es quien maneja los datos.

6. Base de Datos Distribuidas.-El cliente realiza la interaccin con el usuario, ejecuta la aplicacin, debe conocer latopologade la red, as como la disposicin y ubicacin de los datos. Se delega parte de lagestinde la base de datos al cliente.

7. Cliente servidor a tres niveles.-El cliente se encarga de la interaccin con el usuario, el servidor de la lgica de aplicacin y la base de datos puede estar en otro servidor.

Leer ms:http://www.monografias.com/trabajos16/sistemas-distribuidos/sistemas-distribuidos.shtml#ixzz3aGEVWmeW1.4. Llamada a un procedimiento remoto RPC

Elmodelo cliente - servidores una forma conveniente de estructurar un S. O. distribuido, peroposee una falencia[25, Tanenbaum]: Elparadigma esencialen torno al que se construye la comunicacin es laentrada / salida. Losprocedimientos send / receiveestn reservados para la realizacin dee / s.Una opcin distinta fue planteada porBirrelyNelson: Permitir a los programas que llamasen aprocedimientos localizados en otras mquinas. Cuando un proceso en la mquinaAllama a un procedimiento en la mquinaB: El proceso que realiza la llamada se suspende.

La ejecucin del procedimiento se realiza enB. La informacin se puede transportar de un lado al otro mediante los parmetros y puede regresar en el resultado del procedimiento.

El programador no se preocupa de una transferencia de mensajes o de la e / s.

A este mtodo se lo denominallamada a procedimiento remotooRPC. El procedimiento que hace la llamada y el que la recibe se ejecutan en mquinas diferentes, es decir que utilizan espacios de direcciones distintos.

2. SINCRONIZACION EN LOS SISTEMAS DISTRIBUIDOS2.1. Sincronizacin de relojesLa sincronizacin de relojes en unsistemadistribuido consiste en garantizar que losprocesosse ejecuten en forma cronolgica y a la misma vez respetar el orden de loseventosdentro del sistema. Para lograr esto existen variosmtodosoalgoritmosque se programan dentro del sistema operativo, entre los cuales tenemos:

i. Estealgoritmoest basado en el uso deltiempocoordenado universal (siglas eningls, UTC), el cual es recibido por un equipo dentro del sistema distribuido. Este equipo, denominado receptor de UTC, recibe a su vez solicitudes peridicas del tiempo del resto demquinasdel sistema a cada uno de los cuales les enva una respuesta en el menor plazo posible informando el tiempo UTC solicitado, con lo cual todas las mquinas del sistema actualicen su hora y se mantenga as sincronizado todo el sistema. El receptor de UTC recibe el tiempo a travs de diversosmediosdisponibles, entre los cuales se menciona lasondasderadio,Internet, entre otros.

Un gran problema en este algoritmo es que eltiempo no puede correr hacia atrs: El tiempo del receptor UTC no puede ser menor que el tiempo de la mquina que le solicit el tiempo.

Elservidorde UTC debe procesar las solicitudes de tiempo con elconceptode interrupciones, lo cual incide en el tiempo deatencin.

El intervalo de transmisin de la solicitud y su respuesta debe ser tomado en cuenta para la sincronizacin. Eltiempo de propagacinse suma altiempo del servidorparasincronizar al emisorcuando ste recibe la respuesta.

Leer ms:http://www.monografias.com/trabajos55/sincronizacion-sistemas-distribuidos/sincronizacion-sistemas-distribuidos.shtml#ixzz3aGJrxDp32.2. Exclusin mutua

Cuando un proceso debe leer o actualizar ciertasestructuras de datos compartidas[25, Tanenbaum]: Primero ingresa a unaregin crticapara lograr laexclusin mutuay garantizar que ningn otro proceso utilizar las estructuras de datos al mismo tiempo.

En sistemas monoprocesadores las regiones crticas se protegen con semforos, monitores y similares.En sistemas distribuidos la cuestin es ms compleja.

Inicio:

Fin:

Un Algoritmo CentralizadoLa forma ms directa de lograr laexclusin mutua en un sistema distribuidoes simular a la forma en que se lleva a cabo en un sistema monoprocesador.

Se elige unproceso coordinador.Cuando un proceso deseaingresar a una regin crtica: Enva un mensaje de solicitud al coordinador:

Indicando la regin crtica.

Solicitando permiso de acceso.

Si ningn otro proceso est en ese momento en esa regin crtica:

El coordinador enva una respuesta otorgando el permiso.

Cuando llega la respuesta el proceso solicitante entra a la regin crtica.

Si un proceso pide permiso paraentrar a una regin crtica ya asignada a otro proceso: El coordinadornootorga el permiso y encola el pedido.

Cuando un procesosale de la regin crticaenva un mensaje al coordinador para liberar su acceso exclusivo: El coordinador extrae el primer elemento de la cola de solicitudes diferidas y enva a ese proceso un mensaje otorgando el permiso, con lo cual el proceso queda habilitado para acceder a la regin crtica solicitada.

Es un esquema sencillo, justo y con pocos mensajes de control.La limitante es queel coordinador puede ser un cuello de botellay puede fallar y bloquear a los procesos que esperan una respuesta de habilitacin de acceso.

Inicio:

Fin:

Un Algoritmo DistribuidoEl objetivo es no tener un nico punto de fallo (el coordinador central).Un ej. es elalgoritmo de Lamportmejorado porRicart y Agrawala.Se requiere unorden total de todos los eventosen el sistema para saber cul ocurri primero.

Cuando un proceso deseaentrar a una regin crtica: Construye un mensaje con el nombre de la regin crtica, su nmero de proceso y la hora actual.

Enva el mensaje a todos los dems procesos y de manera conceptual a l mismo.

Se supone que cada mensaje tiene un reconocimiento.

Si el receptorno est en la regin crtica y no desea entrar a ella, enva de regreso un mensaje o.k. al emisor.Si el receptorya est en la regin crticano responde y encola la solicitud.

Si el receptordesea entrar a la regin crtica pero an no lo logr, compara:

La marca de tiempo del mensaje recibido con,

La marca contenida en el mensaje que envi a cada uno.

La menor de las marcas gana.

Si el mensaje recibido es menor el receptor enva un o.k.

Si su propio mensaje tiene una marca menor el receptor no enva nada y encola el pedido.

Luego de enviar las solicitudes un proceso: Espera hasta que alguien ms obtiene el permiso.

Cuando llegan todos los permisos puede entrar a la regin crtica.

Cuandoun proceso sale de la regin crtica: Enva mensajes o.k. a todos los procesos en su cola.

Elimina a todos los elementos de la cola.

La exclusin mutua queda garantizada sin bloqueo ni inanicin.El nmero de mensajes necesarios por entrada es2(n - 1), siendonel nmero total de procesos en el sistema.

No existe un nico punto de fallo sino n: Si cualquier proceso falla no responder a las solicitudes.

La falta de respuesta se interpretar como negacin de acceso:

Sebloquearnlos siguientes intentos de los dems procesos por entrar a todas las regiones crticas.

Seincrementa la probabilidad de fallo en n vecesy tambin eltrfico en la red.Se puedesolucionar el bloqueosi:

El emisor espera y sigue intentando hasta que regresa una respuesta o,

El emisor concluye que el destinatario est fuera de servicio.

Otroproblemaes que: Se utilizar una primitiva de comunicacin en grupo o,

Cada proceso debe mantener la lista de miembros del grupo, incluyendo los procesos que ingresan, los que salen y los que fallan.

Se complica para gran nmero de procesos.

Un importanteproblema adicionales que: Todoslos procesos participan entodaslas decisiones referentes a las entradas en las regiones crticas.

Sesobrecargael sistema.

Unamejoraconsiste en permitir que un proceso entre a una regin crticacon el permiso de una mayora simple de los dems procesos(en vez de todos): Luego de que un proceso otorg el permiso a otro para entrar a una regin crtica, no puede otorgar el mismo permiso a otro proceso hasta que el primero libere su permiso.

Inicio:

Fin:

Un Algoritmo de Anillo de Fichas (Token Ring)Los procesos se organizan por software formando un anillo lgico asignndose a cada proceso una posicin en el anillo.Cada proceso sabe cul es el siguiente luego de l.

Alinicializar el anillose le da al proceso0unaficha (token)que circula en todo el anillo, que se transfiere del procesokalk + 1en mensajes puntuales.

Cuando un proceso obtiene la ficha de su vecinoverifica si intenta entrar a una regin crtica: En casopositivo: El proceso entra a la regin crtica, hace el proceso necesario y sale de ella.

Despus de salir pasa la ficha a lo largo del anillo:

No se puede entrar a una segunda regin crtica con la misma ficha (token o permiso).

En casonegativo: La vuelve a pasar.

En un instante dado solo un proceso puede estar en una regin crtica.Si la ficha se pierde debe ser regenerada,pero es difcil detectar su perdida:

La cantidad de tiempo entre las apariciones sucesivas de la ficha en la red no est acotada, por ello es difcil decidir si est perdida o demorada en algn proceso que no la libera.

Lafalla de un procesoes detectada cuando su vecino intenta sin xito pasarle la ficha: Se lo debe eliminar del grupo y pasar la ficha al siguiente proceso activo.

Todos los procesos deben mantener laconfiguracin actualdel anillo.

2.3. Algoritmos de eleccin

Son los algoritmos para la eleccin de un proceso coordinador, iniciador, secuenciador, etc.[25, Tanenbaum].Elobjetivode un algoritmo de eleccin es garantizar que iniciada una eleccin sta concluya con elacuerdo de todos los procesoscon respecto a la identidad delnuevo coordinador.Inicio:

Fin:

El Algoritmo del Granduln o de Garca-MolinaUnproceso Pinicia una eleccin cuando observa queel coordinador ya no respondea las solicitudes.

P realiza una eleccinde la siguiente manera:

Enva un mensajeeleccina los dems procesos con un nmero mayor.

Si nadie responde asume que gana la eleccin y se convierte en elnuevo coordinador. Si un proceso con un nmero mayor responde,toma el controly el trabajo dePtermina.

Un proceso puede recibir en cualquier momento un mensajeeleccinde otros procesos con un nmero menor: Enva de regreso un mensaje o.k. al emisor para indicar que est vivo y que tomar el control.

Realiza una eleccin salvo que ya est haciendo alguna.

En cierto momentotodoslos procesos han declinado ante uno de ellos, que ser elnuevo coordinador, que enva un mensajecoordinadora todos los procesos para anunciarlo.Si un proceso inactivo se activa realiza una eleccin:

Si l tiene el nmero ms alto ser elnuevo coordinador: Siempre gana el proceso que posee el nmero mayor, de ah el nombrealgoritmo del granduln.

Inicio:

Fin:

Un Algoritmo de AnilloSe supone que los procesos tienen un orden fsico o lgico, es decir que cada proceso conoce a su sucesor.

Cuando algn proceso observa que elcoordinador no funciona: Construye un mensajeeleccincon su propio nmero de proceso.

Enva el mensaje a su sucesor.

Si el sucesor est inactivo:

El emisor va hacia el siguiente nmero del anillo o al siguiente de ste.

Contina hasta localizar un proceso en ejecucin.

En cada paso, al emisor aade su propio nmero de proceso a la lista en el mensaje.

En cierto momento el mensaje regresa al proceso que lo inici:

El proceso lo reconoce al recibir un mensaje con su propio nmero de proceso.

El mensaje deeleccinse transforma en mensajecoordinadory circula nuevamente:

Informa a los dems procesos:

Quin es elcoordinador, es decir, el miembro de la lista con el nmero mayor.

Quines son losmiembros del nuevo anillo.

Concluida la ronda de informacin elmensaje coordinadorse elimina y continan los procesos.

2.4. Transacciones atmicas

Lastcnicas de sincronizacinya vistas son debajo nivel[25, Tanenbaum]:

Elprogramadordebe enfrentarse directamente con los detalles de:

La exclusin mutua.

El manejo de las regiones crticas.

La prevencin de bloqueos.

La recuperacin de fallas.

Se precisantcnicas de abstraccin de mayor nivelque: Oculten estos aspectos tcnicos.

Permitan a los programadoresconcentrarse en los algoritmosy la forma en que los procesos trabajan juntos en paralelo.

Tal abstraccin la llamaremostransaccin atmica,transaccinoaccin atmica.La principal propiedad de la transaccin atmica es el todo o nada: O se hace todo lo que se tena que hacer como una unidad o no se hace nada.

Ejemplo:

Un cliente llama al Banco mediante una PC con un mdem para:

RetirarDINEROde una cuenta.

Depositar el dinero en otra cuenta.

La operacin tiene dos etapas.

Si la conexin telefnica falla luego de la primer etapa pero antes de la segunda:

Habr un retiro pero no un depsito.

La solucin consiste en agrupar las dos operaciones en unatransaccin atmica: Las dos operaciones terminaran o no terminara ninguna.

Se debe regresar al estado inicial si la transaccin no puede concluir.2.5. Bloqueos en sistemas distribuidos

Son peores que los bloqueos en sistemas monoprocesador[25, Tanenbaum]: Son ms difciles de evitar, prevenir, detectar y solucionar.

Toda la informacin relevante est dispersa en muchas mquinas.

Sonespecialmente crticosen sistemas debases de datos distribuidos.Lasestrategias usualespara el manejo de los bloqueos son:

Algoritmo del avestruz: Ignorar el problema.

Deteccin: Permitir que ocurran los bloqueos, detectarlos e intentar recuperarse de ellos.

Prevencin: Hacer que los bloqueos sean imposibles desde el punto de vista estructural.

Evitarlos: Evitar los bloqueos mediante la asignacin cuidadosa de los recursos.

Elalgoritmo del avestruzmerece las mismas consideraciones que en el caso de mono-procesador.En los sistemas distribuidos resulta muy difcil implantar algoritmos para evitar los bloqueos: Se requiere saber de antemano la proporcin de cada recurso que necesitar cada proceso.

Es muy difcil disponer de esta informacin en forma prctica.

Las tcnicas ms aplicables para elanlisis de los bloqueosen sistemas distribuidos son: Deteccin.

Prevencin.

3. PROCESOS Y PROCEDIMIENTOS EN SISTEMAS DISTRIBUIDOSProcesos Unprocesoes unprogramaen ejecucin. Todos los procesos tienen asociados un espacio de direcciones enmemoria,registrosy el contador deprogramas. Un programa para poderse ejecutar necesita estar en memoria principal. Los procesos son dependientes delsistema operativo.

Leer ms:http://www.monografias.com/trabajos103/procesos-y-procesadores-sistemas-distribuidos/procesos-y-procesadores-sistemas-distribuidos.shtml#ixzz3aGN7aaxB

ProcesadorUn procesador o mejor conocido comomicroprocesadores la unidad dehardwareque se encarga de procesar los datos que estn almacenados en unacomputadorapara producir cualquier tipo de informacin de inters para los usuarios. Un microprocesador se compone de una Unidad Lgica-Aritmtica (ALU) que se encarga de lasoperacionesbsicas dadas a travs de microprogramacin.

Leer ms:http://www.monografias.com/trabajos103/procesos-y-procesadores-sistemas-distribuidos/procesos-y-procesadores-sistemas-distribuidos.shtml#ixzz3aGNJha6t3.1. HilosEn los sistemas operativos tradicionales cada proceso tiene un espacio de direcciones y un hilo de control. Un hilo es una secuencia de cdigo en ejecucin dentro del contexto de un proceso no pueden ejecutarse ellos solos, requieren la supervisin de un proceso padre para correr. Dentro de cada proceso hay varios hilos ejecutndose.3.2. Modelos de sistemas

Definicin de modelo, es la representacin mental o formal de un sistema, cuyo objetivo es anticipar conductas futuras, beneficiado de la informacin almacenada del pasado, para pronosticar comportamientos del futuro que estamos modelando.

3.3. Asignacin de procesadores

Por definicin, un sistema distribuido consta de varios procesadores. Estos se pueden organizar como coleccin de estaciones de trabajo personales, una pila pblica de procesadores o alguna forma hbrida. En todos los casos, se necesita cierto algoritmo para decidir cul proceso hay que ejecutar y en qu mquina. Para el modelo de estaciones de trabajo, hay que decidir cundo ejecutar el proceso de manera local y cundo buscar una estacin inactiva. Para el modelo de la pila reprocesadores, hay que tomar una decisin por cada nuevo proceso.Uso de estaciones de trabajo inactivasPlantea el problema de encontrar estaciones de trabajo inactivas en la redque puedan ejecutar procesos. Por lo cual las estaciones de trabajo deben deanunciar cuando no cuentan con una carga de trabajo asignada, as todas las dems estaciones toman nota de esto y lo registran.

Modelos de asignacinGeneralmente se utilizan las siguientes hiptesis:Todas las mquinas son idnticas o al menos compatibles en el cdigo, difieren a lo sumo en la velocidad.Cada procesador se puede comunicar con los dems. Las estrategias de asignacin de procesadores se pueden dividir en 2 categoras amplias:No migratorias:Al crearse un proceso, se toma una decisin de dondecolocarlo. Una vez colocado en la mquina, el proceso permanece ah hasta que termina. No se puede mover, no importa lo sobrecargada que est lamquina.Migratorias:Un proceso se puede trasladar aunque haya iniciado su ejecucin. Permiten un mejor balance de la carga pero son ms complejas y tienen un efecto fundamental en el diseo del sistema.Los algoritmos de asignacin intentan optimizar:Uso de las CPU:Maximizar el nmero de ciclos de CPU que se ejecutan para trabajos de los usuarios. Minimizar el tiempo de inactividad de las CPU.

Tiempo promedio de respuestaMinimizar no los tiempos individuales de respuesta sino los tiempos promedio de respuesta.

Tasa de respuesta:Minimizar la tasa de respuesta, que es el tiempo necesario para ejecutar un proceso en cierta mquina dividido por el tiempo que tardara en cierto procesador de referencia.3.4. Planificacin en sistemas distribuidos

Cada procesador se multiprograma con n espacios para los procesos (multiprogramacin de nivel n). El algoritmo de Ouster hout utiliza el concepto de coplanificacin:Toma en cuenta los patrones de comunicacin entre los procesos durante la planificacin.Debe garantizar que todos los miembros del grupo se ejecuten al mismo tiempo.Se emplea una matriz conceptual donde: = Las filas son espacios de tiempo.= Y las columnas son las tablas de procesos de los procesadores.Cada procesador debe utilizar un algoritmo de planificacin Round Robin. Donde:1-Todos los procesadores ejecutan el proceso en el espacio 0 durante un cierto perodo fijo.2-Todos los procesadores ejecutan el proceso en el espacio 1 durante un cierto perodo fijo, etc.3-Se deben mantener sincronizados los intervalos de tiempo.4-Todos los miembros de un grupo se deben colocar en el mismo nmero de espacio de tiempo pero en procesadores distintos.3.5. Tolerancia de fallas

La tolerancia a fallos es un aspecto crtico para aplicaciones a gran escala, ya que aquellas simulaciones que pueden tardar del orden de varios das o semanas para ofrecer resultados deben tener la posibilidad de manejar cierto tipo de fallos del sistema o de alguna tarea de la aplicacin.Sin la capacidad de detectar fallos y recuperarse de estos, dichas simulaciones pueden no llegar a completarse. Es ms, algunos tipos de aplicaciones requieren ser ejecutadas en un entorno tolerante a fallos debido al nivel de seguridad requeridos.

De cualquier forma, en ciertos casos debera haber algn modo de detectar y responder automticamente a ciertos fallos del sistema o al menos ofrecer cierta informacin al usuario en el caso de producirse un fallo.En PVM hay un mecanismo de notificacin de fallos, de forma que una tarea puede manejar notificaciones sobre ciertas tareas de las que espera recibir un mensaje. Por ejemplo, si una tarea muere, otra que estuviese esperando un mensaje de la primera recibir una notificacin en lugar del mensaje que esperaba. De esta forma, la notificacin le da la oportunidad de responder al fallo sin tener que fallar forzosamente.3.6. Sistemas distribuidos de tiempo real

Los sistemas de tiempo real son aquellos que interactuan con el mundo exterior donde el tiempo es un factor importante.CARACTERSTICAS.Se activan por evento o por tiempo.Su comportamiento debe ser predecible.Deben ser tolerantes a fallas.La comunicacin en los sistemas distribuidos de tiempo real debe de alto desempeo.CLASIFICACIN.Los sistemas de tiempo real se clasifican en general en dos tipos dependiendo de lo serio de sus tiempos lmite y de las consecuencias de omitir uno de ellos. Estos son:Sistema de tiempo real suave.Sistema de tiempo real duro.El tiempo real suave significa que no existe problema si se rebasa un tiempo lmite. Un sistema de tiempo real duro es aquel en el que un tiempo lmite no cumplido puede resultar catastrfico.Ejemplo de sistema de tiempo real suave.Conmutador telefnico.Ejemplo de sistema de tiempo real duro.Alarma ssmica.

ACTIVACIN DE SISTEMAS DE TIEMPO REAL.Los sistemas de tiempo real pueden ser activados por evento o por tiempo. Se dice que un sistema es activado por evento cuando, al ocurrir un evento externo, este es detectado por algn sensor, lo que entonces provoca que el CPU conectado tenga una interrupcin. Los sistemas activados por eventos estn controlados entonces por las interrupciones. Por otro lado, en los sistemas de tiempo real activados por el tiempo, se verifican los sensores cada cierto tiempo, para verificar si est ocurriendo algn evento externo. La desventaja es que se pierde mucho tiempo de CPU si los eventos ocurren con poca frecuencia.

4. SISTEMAS DE ARCHIVOS

Unsistema de archivos distribuidoosistema de archivos de redes un sistema de archivos de computadoras que sirve para compartir archivos, impresoras y otros recursos como un almacenamiento persistente en una red de computadoras. El primer sistema de este tipo fue desarrollado en la dcada de1970, y en1985

HYPERLINK "http://es.wikipedia.org/wiki/Sun_Microsystems" \o "Sun Microsystems" Sun Microsystemscre el sistema de archivos de redNFSel cual fue ampliamente utilizado como sistema de archivos distribuido. Otros sistemas notables utilizados fueron el sistema de archivos Andrew (AFS) y el sistemaServer Message Block SMB, tambin conocido comoCIFS.4.1. Diseo sistemas archivos

Generalmente, unsistemade archivos distribuidos consta de dos componentes muy distintos entre s: elserviciode archivos y el servicio de directorios.

La Interfaz del Servicio de ArchivosUnarchivoes una secuencia de bytes sininterpretacinalguna. Esto quiere decir que el contenido yestructurade un archivos es interpretado por el software de aplicacin mas no por elsistema operativosobre el que se est trabajando.Un archivo se caracteriza por tener atributos, tales como: el propietario, el tamao, la fecha de creacin y el permiso de acceso.Lautilidaddel servicio de archivos consiste en proporcionar una adecuadaadministracinde los atributos, definidos por el usuario, que estas poseen. Lo ms comn es encontrar algunos sistemas avanzados que permitan modificarlos despus de sus creacin, pero en algunos sistemas distribuidos las nicasoperacionesque pueden realizarse sobre un archivo es CREATE y READ (Crear y Leer). Es decir, una vez creado el archivo no puede modificarse. A este tipo de archivos se les denomina archivos inmutables.Existen dos tipos deserviciosde archivos distribuidos:modelocarga/descarga y modelo de acceso remoto.Modelo Carga/Descarga: Consiste bsicamente en dos operaciones:lecturayescritura. Como semuestraen la Figura 1.1, la primera operacin consiste en la transferencia de un archivo completo desde elservidorhacia elclientesolicitante; la segunda operacin consiste en el envo de un archivo del cliente al servidor, es decir, en sentido contrario. Mientras tanto los archivos pueden ser almacenados enmemoriao en un disco local, segn sea el caso.

El modelo carga/descargaModelo de Acceso Remoto: Este tipo de modelo consiste en que todas las operaciones (abrir y cerrar, leer y escribir, etc.) se realizan en el servidor mas no en losclientes. Esto se muestra claramente en la Figura 1.2.Figura 1.2. El modelo de acceso remoto

Estos dosmodelosse diferencian en que en el primero se debe transferir el archivo completo del servidor al cliente y viceversa, lo que no es necesario en el modelo de acceso remoto.Debemos tener en cuenta que el solo hecho de compartir archivos puede traer dosproblemasprincipales por resolver: el permiso de acceso y lagestinde los accesos simultneos.

Permisos de Accesos:

Un sistema de archivos distribuidos provee al usuario de una herramienta flexible que permite compartir archivos extensos entre ellos. Esta herramienta actualmente utilizada con muchoxito(pero con algunas deficiencias) no es ms que una lista dederechosde acceso los cuales pueden ser asignados a un usuario en particular para un archivo en particular. Estos derechos de acceso se muestran en la siguiente tabla:

Derecho de AccesoDescripcin

NingunoEn el que el usuario no puede determinar la existencia del archivo y mucho menos acceder a ste y sus directorios. Tampoco puede conocer la ruta que especifica su ubicacin actual.

ConocimientoEl usuario conoce sobre la existencia del archivo y quin es su dueo. Puede solicitar tener algunos derechos de acceso a este archivo.

EjecucinEl usuario puede ejecutar y cargar elprogramapero no copiarlo.

LecturaEl usuario puede leer el archivo, tambin copiarlo y ejecutarlo.

AdicinEl usuario puede agregardatosal archivo (generalmente al final), pero no puede modificar o borrar su contenido.

ActualizacinEl usuario puede modificar, borrar y agregar datos al archivo.

Cambio de proteccinEl usuario puede cambiar los derechos de acceso que han sido otorgados a los usuarios.

BorradoEl usuario puede borrar el archivo de su ubicacin actual.

Puede brindarse acceso a las siguientes clases de usuario:

Usuario especfico: Usuarios individuales quienes son designados por su ID de usuario.

Grupos de usuario: Conjunto de usuarios no definidos individualmente.

Todos: Es decir, todos los usuarios que tengan acceso al sistema. Los archivos son pblicos.

Gestin de Accesos Simultneos:

El sistema operativo o el sistema de gestin de archivos permite al usuario (que previamente ha tenido acceso a determinado archivo) que l mismo pueda bloquear el archivo cuando vaya a utilizarlo , o en todo caso, bloquear losregistrosindividuales durante la actualizacin. Si no se considera ninguna de estas dos opciones, entonces se analizar aspectos de exclusin mutua e interbloqueo.

La Interfaz del Servidor de DirectoriosEl propsito general del servidor de directorios es poder crear y eliminar directorios, nombrar o cambiar el nombre de archivos y mover stos de un directorio a otro.El sistema distribuido es el encargado de definir el alfabeto y la sintaxis para formar los nombres de los archivos y directorios. Por ejemplo,Windowsdivide los nombres de lo archivos en dos partes: nombre y extensin (tipo de archivo), los cuales se denotan separados por un punto: nombre_archivo.extensin; as tenemos quelibro.txt es un archivo cuyo nombre es libro y es de tipotexto. En otros sistemas, como elUNIX, clasifican a los archivos segn sus atributos (en UNIX un archivo ejecutable se pinta de otrocolor).Todo sistema distribuido permite la existencia de subdirectorios (directorios dentro de otro directorio), permitindose a los usuarios clasificar sus archivos a sus gusto. Estos subdirectorios, a su vez, pueden contener otros subdirectorios lo que se conoce como sistema jerrquico de archivos.Algunos sistemas distribuidos permiten crear apuntadores o enlaces a un directorio determinado, construyendo, de esta manera, no solamenterbolessino tambingrficasde directorios los cuales son ms consistentes.

Un rbol de directorios contenido en una mquinaEsta diferencia entre rboles y grficas es de gran importancia en un sistema distribuido y radica en la eliminacin de enlaces entre un directorio y otro. Es decir, en un rbol se puede eliminar un enlace con un directorio si el directorio al cual se apunta es vaco, mientras que en una grfica solo puede eliminarse enlaces mientras exista al menos otro enlace.

Una grfica de directorios en dos mquinasSemnticade los Archivos DistribuidosExisten hasta cuatromtodospara utilizar los archivos compartidos en un sistema distribuido:

Semntica de UNIX: En la que cada operacin en un archivo es visible a todos losprocesosde manera simultnea. Esto implica que cada operacin cumpla un estricto orden con respecto al tiempo, puesto que el archivo es actualizado inmediatamente despus de realizada cada operacin.

Semntica de Sesin: En la que ningn cambio es visible a otros procesos hasta que l archivo que est siendo utilizado se cierra. Esto produce un desfasamiento en la actualizacin del archivo, puesto que un archivo puede estar siendo utilizado por dos o ms clientes en forma simultnea y se tendr como resultado el archivo cuyo cliente lo cierra despus que todos los dems.

Archivos inmutables: En la que no existen actualizaciones, puesto que una vez creado el archivo no puede modificarse. As es ms fcil compartir y replicar archivos.

Transacciones: En la que todos los cambios tienen lapropiedaddel todo o nada. Es decir, cada operacin que es llamada al sistema no se detiene hasta que finaliza propiamente. De esta manera, si una operacin es requerida mientras est siendo utilizada por otra, esta ltima no se ejecutar hasta que finalice la ejecucin de la primera.

Leer ms:http://www.monografias.com/trabajos11/archi/archi.shtml#ixzz3aGQSxfnV4.2. Implantacin de un sistema distribuido

Uso de ArchivosExisten diferentes formas de utilizar los archivos, pero tambin existen dos formas de medir el grado de utilizacin de cada uso que se le puede dar a un archivo. Estas formas son: mediciones estticas y mediciones dinmicas.

Mediciones Estticas: En este tipo de mediciones se observa el sistema en un determinado momento, esto quiere decir que se verifica suestadoen un instante de tiempo. Entre algunas de estas mediciones estticas podemos encontrar: ladistribucinde tamaos de los archivos, la distribucin de tipos de archivos y la cantidad de espacio que ocupan los archivos de varios tamaos y tipos.

Mediciones Dinmicas: Este tipo de mediciones se encarga de registrar todas las operaciones en una bitcora para unanlisisposterior. De esta manera se tiene informacin respecto a la frecuencia con que se realizan ciertas operaciones.

Segn Satyanarayanan (1981), las propiedades ms comunes de los sistemas de archivos son las siguientes:

La mayora de los archivos son pequeos (menos de 10 K).

La lectura es ms comn que la escritura.

La lectura y escritura son secuenciales: es raro el acceso aleatorio.

La mayora de los archivos tienen una vida corta.

Es poco usual compartir archivos.

Los procesos promedio utilizan slo unos cuantos archivos.

Existen distintas clases de archivos con propiedades diferentes.

Estructura del SistemaLa estructura de un sistema es determinante para el servicio de archivos y directorios, para eso se debe diferenciar entre quines son los clientes y quines son losservidores.En algunos sistemas el servidor solamente puede actuar como servidor y el cliente solamente como cliente. Esto puede tener sus ventajas y desventajas puesto si en algn momento el servidor falla, entonces todo el sistema se paralizara. En otros sistemas, sin embargo, el servidor de archivos y el de directorios son solamenteprogramasdel usuario, de esta manera se puede configurar el sistema para que ejecute o no el software de cliente o servidor en la misma mquina, como se desee.Pero se ha de considerar el aspecto estructural de los servidores de archivos y directorios, en cuanto a que deben o no contener los estados de los clientes. Es decir, existen dos tipos depensamientocon respecto a este tema: los servidores sin estado y los servidores con estado.

Servidores sin Estado: Consiste en que cuando un cliente enva una solicitud a un servidor, ste la lleva a cabo, enva la respuesta y elimina de sus tablas internas toda la informacin correspondiente a dicha solicitud. El servidor no guarda la informacin relativa a los clientes entre las solicitudes.

Ventajas:

Tolerancia de fallas

No necesita llamadas OPEN/CLOSE

No se desperdicia el espacio del servidor en tablas

No existe lmite para el nmero de archivos abiertos

No hay problemas si un cliente falla

Servidores con Estado: Conservan la informacin de estado de los clientes entre las solicitudes. Esto es lo que ocurre en los sistemas centralizados.

Ventajas:

Mensajes de solicitud ms cortos

Mejor desempeo

Es posiblela lecturaadelantada

Es ms fcil la idempotencia

Es posible la cerradura de archivos

OcultamientoEn un sistema cliente servidor, en el que cada uno cuenta con su memoria principal y un disco, pueden almacenarse los archivos o partes de ellos en cuatro lugares diferentes: el disco del servidor,la memoriaprincipal del servidor, el disco del clientes o la memoria principal del cliente. Esto se puede observarse en la Figura 1.5.

Cuatro lugares para guardar archivos o partes de ellosCada lugar en donde se guarde los archivos presenta ventajas y desventajas respecto a la velocidad de transferencia. Aun as, se puede lograr un mejordesempeoocultando (conservando) los archivos en la memoria principal del servidor. Como la memoria principal siempre es de menor capacidad que el disco, entonces debe implementarse unalgoritmopara decidir qu archivos o partes de ellos permanecern en el cach del servidor.Este algoritmo deber resolver dos problemas que se presentarn: Uno de los problemas es el tamao de la unidad que administra el cach, ya que puede administrar archivos completos o bloques del disco. Si se ocultan los archivos completos, stos se pueden almacenar en forma adyacente en el disco (o al menos pedazos muy grandes), lo cual permite transferencias a alta velocidad entre la memoria y el disco, as como un buen desempeo en general. Sin embargo, el ocultamiento de bloques de disco utiliza el cach y el espacio en disco en forma ms eficiente.El segundo problema es que el algoritmo debe decidir qu hacer si se utiliza toda la capacidad del cach y hay que eliminar a alguien. En este caso podra utilizarse cualquiera de los dosalgoritmosde ocultamiento, pero como las referencias al cach son poco frecuentes comparadas con las referencias a memoria, por lo general es factible una implantacin exacta de LRU mediante punteros (listas enlazadas).

RplicaEn general, los sistemas de archivos distribuidos proporcionan la rplica de archivos como servicio a sus clientes. Es decir, se dispone de varias copias de algunos archivos, donde cada copia est en un servidor de archivos independiente. Este servicio de rplica se brinda por diversa razones, a continuacin presentamos las principales razones:

Aumentar la confiabilidad al disponer de respaldos independientes de cada archivo. Es decir, si un servidor falla o se pierde permanentemente, no se pierden los datos.

Permitir el acceso al archivo aunque falle un servidor de archivos. Si un servidor falla esto no debe ocasionar que el sistema se detenga.

Repartir la carga detrabajoentre varios servidores. Con varios archivos duplicados en dos o ms servidores, se puede utilizar el que tenga menor carga.

Existen tres formas de realizar la rplica: rplica explcita, rplica retrasada y rplica de archivos mediante ungrupo.

Rplica explcita: Consiste en que el programador controle todo elproceso. Cuando un proceso crea un archivo, lo hace en un servidor especfico. Entonces se puede crear copias adicionales en otros servidores.

Rplica retrasada: Consiste en crear un sola copia de cada archivo en el servidor. Luego, el propio servidor crea rplicas de este archivo en otros servidores automticamente.

Rplica de archivos mediante un grupo: En este caso, todas las llamadas WRITE al sistema se transmiten en forma simultnea a todos los servidores a la vez, por lo que todas las copias adicionales se hacen al mismo tiempo que el original.

Leer ms:http://www.monografias.com/trabajos11/archi/archi.shtml#ixzz3aGQcMdbU4.3. Tendencias en los sistemas distribuidos de archivos

Los cambios tecnolgicos de los ltimos aos pueden traer tambin cambios muy importantes en los sistemas de archivos distribuidos. Adems con el rpido avance que se da en las redes decomunicacionesy su incremento en el ancho de banda la creacin de paquetes que ofrecen la comparticin de archivos es comn de encontrarse en elmercado. En la industria, el esquema ms solicitado es aquel que permite acceder a los grandes volmenes de informacin de los grandes servidores desde las computadores personales o convencionales y desde otros servidores. Es por eso que la principal solucin que adoptada por las pequeasempresases contar conNovellNetware en un servidor 486 o superior y acceder a los archivos desdemquinassimilares.Entre los sistemas de archivos distribuidos ms populares que existen en la actualidad, tenemos los que nos proporciona Netware, tales como:

Remote Filke Sharing (RFS en UNIX)

Network File System (de Sun Microsystems)

Andrew File System (AFS)

Veremos a continuacin algunos aspectos en los que podran presentarse cambios en un futuro no muy lejano, teniendo en cuenta que los cambios tecnolgicos se producen da a da y en desmesurado avance.

Hardware recienteExisten muchos dispositivoshardwareque en los ltimos aos estn abaratando suscostos, tales como lasmemorias. Esto mejorara circunstancialmente los actuales servidores de archivos puesto que se podr adquirir gran cantidad de gigabytes de memoria, aunque todava se presente el problema de que la memoria sea voltil, es decir, que cuando se apaga el sistema se borran los archivos.Una nuevainnovacinen hardware son los discos pticos que ahora pueden ser utilizados ms de una vez. Aunque son un poco ms caros que las cintas devideosiempre han sido un aporte importante para los sistemas de archivos, principalmente en el soporte de backups.Otro desarrollo importante en hardware son las redes de fibrapticade alta velocidad que agilizaran la transferencia de archivos y se podra prescindir de la memoria cach. Esto tambin simplificara en mucho el software a utilizarse en los sistemas de archivos distribuidos.Existen muchas ms innovaciones tecnolgicas que poco a poco harn ms eficiente el manejo yadministracinde los sistemas de archivos, por lo que en el futuro se podra aun encontrar diversos tipos desolucionesespecficas para un sistema determinado por sus propias caractersticas y requerimientos.

EscalabilidadElconceptode escalabilidad propone que cualquier computador individual ha de ser capaz de trabajar independientemente como un sistema de archivos distribuido, pero tambin debe poder hacerlo conectado a muchas otras mquinas.Un sistema de archivos debera funcionar tanto para una docena de equipos como para varios millares. Igualmente no debera ser determinante el tipo de red utilizada (LANo WAN) ni las distancias entre los equipos.Aunque este punto sera muy necesario, puede que las soluciones impuestas para unos cuantos equipos no sean aplicables para varios otros. De igual manera, el tipo de red utilizada condiciona el rendimiento del sistema, y podra ser que lo que funcione para un tipo de red, para otro necesitara un diseo diferente.

Redes de rea ampliaLa mayor parte del trabajo que se realiza actualmente en los sistemas distribuidos se basa en los sistemas alojados enredes LAN. La tendencia en el futuro es que veremos conectados entres s muchos sistemas distribuidos LAN con el fin de formar sistemas distribuidos transparentes a travs de todo el mundo. Pero para esto tendra que tomarse como punto de importancia el hecho de que no todos los pases utilizan un mismo tipo caracteres para sus archivos, es decir, si enlatinoamricautilizamos los cdigosASCII, puede ser que en otras partes del mundo no se utilice este mismo concepto, lo que producira una incompatibilidad de datos.Por otro lado, tambin es importante el cambio que se producir en las aplicaciones, puesto que la mayora deexperimentosque actualmente se realizan en las universidades estn basados en sistemas parecidos a UNIX.Un problema que se presentar aun mucho ms tiempo es que la conexin defibra pticatardar muchos aos en instalarse en todos los rincones del planeta y tambin la existencia de una red de mayor ancho de banda ser difcil y costosa de implementar pues no se cuenta, todava, con una mayor aceptacin del potencial pblico usuario.

Usuarios mvilesA medida que latecnologade las comunicaciones se digitaliza, se encuentra sujeta a las mismas mejoras exponenciales que han hecho que una computadora porttil de 2000 dlares actual tenga ms capacidad que una computadora IBM de 10 millones de dlares de hace veinte aos. Por esta razn lascomputadorasporttiles presenta un mayor crecimiento en la tecnologa informtica.Pero este hecho presenta la inconveniencia de que estos usuarios no estarn conectados todo el tiempo al sistema, es decir, solo lo estarn algn tiempo y luego no aparecern. Esto es debido a que todava no se cuenta con una adecuada red instalada en diversos lugares para que el usuario pueda conectar su laptop, notebook y su PC de bolsillo a su respectivo sistema o al sistema al cual desea conectarse.Adems, como todava no se cuenta con un ancho de banda mayor, la transferencia de archivos se hace aun mucho ms lenta. Se espera que en el futuro existan mejores ventajas para que sobresalga este de desarrollo tecnolgico que los ltimos ha demostrado tener una verdadera tendencia a seguir creciendo.

Tolerancia de fallasEn la actualidad, la mayor parte de los sistemas de cmputo no presentantoleranciaa fallas. Es comn escuchar en las agencias bancarias la frase: "No hay sistema", por lo que tomamos este hecho como algo absolutamente normal. Salvo algunos sistemas especializados como los que se utilizan para elcontrolde trfico areo, otros sistemas no presentan estecomportamientoque debera ser el ptimo.Para que los sistemas de archivos cumplan con este requisito, deber existir o implementarse una consistente infraestructura de hardware lo cual permita a los sistemas ser realmente confiables ysegurosen cuanto a tiempo de funcionamiento efectivo se refiere.

Leer ms:http://www.monografias.com/trabajos11/archi/archi.shtml#ixzz3aGQnXT3H5. MEMORIA DISTRIBUIDA5.1. Que es la memoria compartida

Los sistemas dememoria compartida distribuida (DSM) representan la creacin hibrida de dos tipos de computacin paralelos: la memoria distribuida en sistemas multiprocesador y los sistemas distribuidos. Ellos proveen la abstraccin de memoria compartida en sistemas con memorias distribuidas fsicamente y consecuentemente combinan las mejores caractersticas de ambos enfoques.5.2. Modelos de consistenciaLa cuestin de la consistencia adquiere importancia en los sistemas DSM que replican el contenido de la memoria compartida mediante su almacenamiento en las cachs de computadores separados. Cada proceso tiene un gestor de rplicas local, el cual est encargado de mantener copias en cach para los objetos. En la mayor parte de las implementaciones, los datos se leen desde las rplicas locales por cuestiones de eficiencia, pero las actualizaciones deben propagarse al resto de gestores de rplica.El gestor de rplica local se implementa mediante una combinacin del middleware (el nivel DSM en tiempo de ejecucin en cada proceso) y del ncleo. Es normal que el middleware realice la mayor parte del procesamiento DSM. Incluso en las implementaciones de DSM basadas en pginas, el ncleo normalmente proporciona nicamente una correspondencia de pginas bsica, el manejo de fallos de pgina y los mecanismos de comunicacin, mientras que el middleware es responsable de implementar las polticas de comparticin de pginas. Si los segmentos DSM son persistentes, entonces uno o ms servidores de almacenamiento (por ejemplo, servidores de archivos) actuarn tambin como gestores de rplicas.Adems de la gestin de la cach, una implementacin DSM puede almacenar las actualizaciones y reducir los costes de comunicacin mediante la propagacin de mltiples actualizaciones a la vez.Un modelo de consistencia de memoria (Mosberger 1993) especifica las garantas de consistencia que un sistema DSM realiza sobre los valores que los procesos leen desde los objetos, dado que en realidad acceden sobre una rplica de cada objeto y que mltiples procesos pueden actualizar los objetos. Tngase en cuenta que esto es diferente de la nocin de consistencia de alto nivel y dependiente de aplicacin.Sin embargo, la mayor parte de las aplicaciones tienen requisitos de consistencia muy estrictos. Es preciso proporcionar a los programadores un modelo que se ajuste razonablemente al comportamiento que la memoria debera tener.Mosberger (1993) realiza un bosquejo de un conjunto de modelos que han sido pensados para multiprocesadores de memoria compartida y sistemas DSM software. Los principales modelos de consistencia que se pueden implementar en la prctica en sistemas DSM son la consistencia secuencial y los modelos basados en consistencia dbil.5.3. Memoria compartida distribuida con base a paginasEl esquema de DSM propone un espacio de direcciones de memoria virtual que integra la memoria de todas las computadoras del sistema, y su uso se realiza mediante paginacin. Las pginas quedan restringidas a estar necesariamente en un nico nodo. 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 nodos. 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 nodo 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.5.4. Memoria compartida distribuida con variables compartidasUn mtodo ms estructurado que la DSM con base a pginas consiste en compartir slo ciertas variables y estructuras de datos necesarias para ms de un proceso. Ahora el problema pasa a ser la forma de mantener una base de datos distribuida, en potencia duplicada, consistente en las variables compartidas.

Uno de los aspectos ms importantes a tratar de estos sistemas es el de si las variables compartidas deben o no duplicarse, y de qu manera, parcial o total. Si se duplicasen existira ms potencial que en un sistema DSM basado en pginas, en trminos de actualizacin, dado que las escrituras en las variables compartidas individuales se pueden aislar. Dos de los ejemplos ms interesantes de este tipo de sistemas son el Munin y el Midway; el primero se basa en una implantacin software de la consistencia de liberacin, y el segundo consiste en compartir las estructuras de datos individuales, permitiendo que los programas multiprocesador existentes y los nuevos se ejecuten de manera eficiente en las multicomputadores, con ligeros cambios de cdigo.5.5. Memoria compartida distribuida 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.

UNIDAD III: MODELOS DE SISTEMAS DISTRIBUIDOS

1. Introduccin a la AMOEBA

Amoeba es un Sistema Operativo Distribuido de propsito general. Est diseado para explotar un conjunto de computadoras y hacer que trabajen juntas como un solo sistema integrado. 2. Objetivos y posibilidades de AMOEBA