100% encontró este documento útil (1 voto)
261 vistas37 páginas

Historia y características de sistemas distribuidos

Un sistema distribuido es una colección de computadoras independientes que aparecen ante los usuarios del sistema como una única computadora. Los componentes de un sistema distribuido se comunican y coordinan sus acciones mediante el paso de mensajes. Los sistemas distribuidos deben proveer transparencia, fiabilidad, rendimiento, escalabilidad y flexibilidad.

Cargado por

Deyvi Talledo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
261 vistas37 páginas

Historia y características de sistemas distribuidos

Un sistema distribuido es una colección de computadoras independientes que aparecen ante los usuarios del sistema como una única computadora. Los componentes de un sistema distribuido se comunican y coordinan sus acciones mediante el paso de mensajes. Los sistemas distribuidos deben proveer transparencia, fiabilidad, rendimiento, escalabilidad y flexibilidad.

Cargado por

Deyvi Talledo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

Captulo I

1. Historia de los sistemas distribuidos


La computacin desde sus inicios ha sufrido muchos cambios, desde los grandes ordenadores que
permitan realizar tareas en forma limitada y de uso un tanto exclusivo de organizaciones muy
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 una persona.
Los mayores cambios se atribuyen principalmente a dos causas, que se dieron desde las dcadas de
los setenta:
1. El desarrollo de los microprocesadores, que permitieron reducir en tamao y costo a los
ordenadores y aumentar en gran medida las capacidades de los mismos y su acceso a ms
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 telfonos mviles, redes corporativas, redes de empresas, etc.
En consecuencia, el presente trabajo que lleva el ttulo de "Sistemas Distribuidos", tiene como
principal objetivo: "describir panormicamente los aspectos relevantes que estn involucrados en los
Sistemas Distribuidos".
Para lograr el objetivo planteado se ha estructurado el trabajo de 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 los sistemas distribuidos.
3. Referencias.- Donde especificamos las fuentes que 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 una red 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) y SOAP para 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 denomina tolerancia a fallos.

El tamao de un sistema distribuido puede ser muy variado, ya sean decenas de hosts (red de rea
local), centenas de hosts (red de rea metropolitana), o miles, o millones de hosts (Internet); esto se
denomina escalabilidad. 1
Un sistema distribuido es una coleccin de computadoras
aparecen
ante
los
usuarios
del
sistema
como
una

independientes que
nica
computadora

Un sistema distribuido es aquel en el que los componentes localizados en


computadores, conectados en red, comunican y coordinan sus acciones nicamente
mediante
el
paso
de
mensajes
Caractersticas de los Sistemas Distribuidos
3. Objetivos
Transparencia
La 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.

Fiabilidad
La 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.
Rendimiento
El 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.
Escalabilidad

El 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.
Flexibilidad
La 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.
2.
3.
4.

Accesibilidad
Transparencia
Apertura
Escalabilidad
Accesibilidad
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 Distribuidos
Identificacin, 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 Coordinacin


Comprende 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 consistencia
Gestin 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 Seguridad
Tipologa 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 II
1. 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
la transferencia de mensajes[25, Tanenbaum].
Cuando el proceso A quiere comunicarse con el proceso B:
Construye un mensaje en su propio espacio de direcciones.
Ejecuta una llamada al sistema para que el S. O. busque el mensaje y lo enve a travs de la red
hacia B.
Para evitar el caos, A y B deben coincidir en el significado de los bits que se enven.
Los puntos de acuerdo necesarios incluyen 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?.
La ISO (Organizacin Internacional de Estndares) desarroll un modelo 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 denomina modelo de referencia para interconexin de sistemas


abiertos (ISO OSI o modelo OSI) [26, Tanenbaum].
El modelo OSI est diseado para permitir la comunicacin de los sistemas abiertos:
Son aquellos preparados para comunicarse con cualquier otro sistema abierto mediante reglas
estndar:
o Establecen el formato, contenido y significado de los mensajes recibidos y enviados.
o Constituyen los protocolos, que son acuerdos en la forma en que debe desarrollarse la
comunicacin (ver Figura 8.2 [25, Tanenbaum]).

El modelo OSI distingue entre dos tipos generales de protocolos:


Orientados hacia las conexiones:
o 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:
o No es necesaria una configuracin de antemano.
o El emisor transmite el primer mensaje cuando est listo.
o El depsito de una carta en un buzn es una comunicacin sin conexin.
Cada capa proporciona una interfaz con la otra capa por encima de ella; la interfaz consiste de un conjunto de
operaciones para definir el servicio que la capa est preparada para ofrecer a sus usuarios.
El protocolo de la capa n utiliza la informacin de la capa n.
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 una suite de
protocolo o pila 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 organizationISO) 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-Servidor
Definicin:
Sistema donde el cliente es una mquina que solicita un determinado servicio y se denomina servidor a la
mquina que lo proporciona. Los servicios pueden ser:
Ejecucin de un determinado programa.
Acceso a un determinado banco de informacin.

Acceso a un dispositivo de hardware.


Es un elemento primordial, la presencia de un medio fsico de comunicacin entre las mquinas, y depender
de la naturaleza de 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
de almacenamiento y 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 la base 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.
Servidores WEB.- Son los que guardan y proporcionan Pginas HTML. 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
la impresora que lleve a cabo las operaciones y 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 / Servidor
A continuacin mostramos las arquitecturas cliente-servidor ms populares:
Arquitectura Cliente-Servidor de Dos Capas.- Consiste en una capa de presentacin y lgica de la
aplicacin; y la otra de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes
situaciones:

o
o
o
o

Cuando se requiera poco procesamiento de datos en la organizacin.


Cuando se tiene una base de datos centralizada en un solo servidor.
Cuando la base de datos es relativamente esttica.
Cuando se requiere un mantenimiento mnimo.
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:

o
o
o
o
o
o

Cuando se requiera mucho procesamiento de datos en la aplicacin.


En aplicaciones donde la funcionalidad este en constante cambio.
Cuando los procesos no estn relativamente muy relacionados con los datos.
Cuando se requiera aislar la tecnologa de la base de datos para que sea fcil de cambiar.
Cuando se requiera separar el cdigo del cliente para que se facilite el mantenimiento.
Esta muy adecuada para utilizarla con la tecnologa orientada a objetos.
CLIENTE/SERVIDOR DE TRES CAPAS
Clasificacin 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:

2.

1.
Representacin distribuida.- La interaccin con 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


algunas funciones triviales 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 la topologa de la red, as como la disposicin y ubicacin de los datos. Se delega parte de
la gestin de la base de datos al cliente.
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.

7.

Leer
ms: http://www.monografias.com/trabajos16/sistemas-distribuidos/sistemasdistribuidos.shtml#ixzz3aGEVWmeW

1.4. Llamada a un procedimiento remoto RPC

El modelo cliente - servidor es una forma conveniente de estructurar un S. O. distribuido, pero posee una
falencia [25, Tanenbaum]:

El paradigma esencial en torno al que se construye la comunicacin es la entrada / salida.


Los procedimientos send / receive estn reservados para la realizacin de e / s.

Una opcin distinta fue planteada por Birrel y Nelson:

Permitir a los programas que llamasen a procedimientos localizados en otras mquinas.


Cuando un proceso en la mquina A llama a un procedimiento en la mquina B:
o

El proceso que realiza la llamada se suspende.

La ejecucin del procedimiento se realiza en B.

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 denomina llamada a procedimiento remoto o RPC.

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 DISTRIBUIDOS

2.1. Sincronizacin de relojes

La sincronizacin de relojes en un sistema distribuido consiste en garantizar que los procesos se ejecuten en
forma cronolgica y a la misma vez respetar el orden de los eventos dentro del sistema. Para lograr esto
existen varios mtodos o algoritmos que se programan dentro del sistema operativo, entre los cuales
tenemos:
i.
Este algoritmo est basado en el uso del tiempo coordenado universal (siglas en ingls, 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 de mquinas del 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 diversos medios disponibles, entre los cuales se
menciona las ondas de radio, Internet, entre otros.
Un gran problema en este algoritmo es que el tiempo no puede correr hacia atrs:
o
El tiempo del receptor UTC no puede ser menor que el tiempo de la mquina que le solicit
el tiempo.
o
El servidor de UTC debe procesar las solicitudes de tiempo con el concepto de
interrupciones, lo cual incide en el tiempo de atencin.
o
El intervalo de transmisin de la solicitud y su respuesta debe ser tomado en cuenta para la
sincronizacin. El tiempo de propagacin se suma al tiempo del servidor para sincronizar al
emisor cuando ste recibe la respuesta.

Leer
ms: http://www.monografias.com/trabajos55/sincronizacion-sistemasdistribuidos/sincronizacion-sistemas-distribuidos.shtml#ixzz3aGJrxDp3

2.2. Exclusin mutua

Cuando un proceso debe leer o actualizar ciertas estructuras de datos


compartidas [25, Tanenbaum]:

Primero ingresa a una regin crtica para lograr la exclusin mutua y


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 Centralizado
La forma ms directa de lograr la exclusin mutua en un sistema distribuido es
simular a la forma en que se lleva a cabo en un sistema monoprocesador.
Se elige un proceso coordinador.

Cuando un proceso desea ingresar a una regin crtica:

Enva un mensaje de solicitud al coordinador:


o Indicando la regin crtica.
o

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


o

Solicitando permiso de acceso.


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 para entrar a una regin crtica ya asignada a otro
proceso:
El coordinador no otorga el permiso y encola el pedido.
Cuando un proceso sale de la regin crtica enva 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 que el coordinador puede ser un cuello de botella y puede fallar y
bloquear a los procesos que esperan una respuesta de habilitacin de acceso.
Inicio:

Fin:

Un Algoritmo Distribuido
El objetivo es no tener un nico punto de fallo (el coordinador central).
Un ej. es el algoritmo de Lamport mejorado por Ricart y Agrawala.
Se requiere un orden total de todos los eventos en el sistema para saber cul
ocurri primero.
Cuando un proceso desea entrar 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 receptor no est en la regin crtica y no desea entrar a ella, enva de


regreso un mensaje o.k. al emisor.
Si el receptor ya est en la regin crtica no responde y encola la solicitud.
Si el receptor desea 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.
Cuando un 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 es 2(n - 1), siendo n el
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:
o

Se bloquearn los siguientes intentos de los dems procesos por


entrar a todas las regiones crticas.

Se incrementa la probabilidad de fallo en n veces y tambin el trfico en la


red.

Se puede solucionar el bloqueo si:

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


El emisor concluye que el destinatario est fuera de servicio.

Otro problema es 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 importante problema adicional es que:


Todos los procesos participan en todas las decisiones referentes a las
entradas en las regiones crticas.
Se sobrecarga el sistema.
Una mejora consiste en permitir que un proceso entre a una regin crtica con 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.
Al inicializar el anillo se le da al proceso 0 una ficha (token) que circula en
todo el anillo, que se transfiere del proceso k al k + 1 en mensajes
puntuales.
Cuando un proceso obtiene la ficha de su vecino verifica si intenta entrar a una
regin crtica:

En caso positivo:

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 caso negativo:
o

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.

La falla de un proceso es 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 la configuracin actual del anillo.

2.3. Algoritmos de eleccin

Son los algoritmos para la eleccin de un proceso coordinador, iniciador,


secuenciador, etc. [25, Tanenbaum].
El objetivo de un algoritmo de eleccin es garantizar que iniciada una eleccin
sta concluya con el acuerdo de todos los procesos con respecto a la identidad
del nuevo coordinador.
Inicio:

Fin:

El Algoritmo del Granduln o de Garca-Molina


Un proceso P inicia una eleccin cuando observa que el coordinador ya no
responde a las solicitudes.
P realiza una eleccin de la siguiente manera:

Enva un mensaje eleccin a los dems procesos con un nmero mayor.


Si nadie responde asume que gana la eleccin y se convierte en el nuevo
coordinador.
Si un proceso con un nmero mayor responde, toma el control y el trabajo
de P termina.

Un proceso puede recibir en cualquier momento un mensaje eleccin de 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 momento todos los procesos han declinado ante uno de ellos, que ser
el nuevo coordinador, que enva un mensaje coordinador a todos los procesos
para anunciarlo.
Si un proceso inactivo se activa realiza una eleccin:

Si l tiene el nmero ms alto ser el nuevo coordinador:


o Siempre gana el proceso que posee el nmero mayor, de ah el
nombre algoritmo del granduln.

Inicio:

Fin:

Un Algoritmo de Anillo
Se supone que los procesos tienen un orden fsico o lgico, es decir que cada
proceso conoce a su sucesor.
Cuando algn proceso observa que el coordinador no funciona:

Construye un mensaje eleccin con su propio nmero de proceso.


Enva el mensaje a su sucesor.

Si el sucesor est inactivo:


o

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:


o

El mensaje de eleccin se transforma en mensaje coordinador y circula


nuevamente:
o

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


de proceso.

Informa a los dems procesos:

Quin es el coordinador, es decir, el miembro de la lista con


el nmero mayor.

Quines son los miembros del nuevo anillo.

Concluida la ronda de informacin el mensaje coordinador se elimina y


continan los procesos.

2.4. Transacciones atmicas

Las tcnicas de sincronizacin ya vistas son de bajo nivel [25, Tanenbaum]:

El programador debe enfrentarse directamente con los detalles de:


o La exclusin mutua.
o

El manejo de las regiones crticas.

La prevencin de bloqueos.

La recuperacin de fallas.

Se precisan tcnicas de abstraccin de mayor nivel que:


Oculten estos aspectos tcnicos.

Permitan a los programadores concentrarse en los algoritmos y la forma


en que los procesos trabajan juntos en paralelo.

Tal abstraccin la llamaremos transaccin atmica, transaccin o accin


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

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

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


una transaccin 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.

Son especialmente crticos en sistemas de bases de datos distribuidos.


Las estrategias usuales para el manejo de los bloqueos son:

Algoritmo del avestruz:


o Ignorar el problema.

Deteccin:
o

Prevencin:
o

Permitir que ocurran los bloqueos, detectarlos e intentar recuperarse


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

Evitarlos:
o

Evitar los bloqueos mediante la asignacin cuidadosa de los


recursos.

El algoritmo del avestruz merece 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 el anlisis de los bloqueos en sistemas


distribuidos son:
Deteccin.
Prevencin.

3. PROCESOS Y PROCEDIMIENTOS EN SISTEMAS DISTRIBUIDOS


Procesos Un proceso es un programa en ejecucin. Todos los procesos tienen asociados un espacio de
direcciones en memoria, registros y el contador de programas. Un programa para poderse ejecutar necesita
estar
en
memoria
principal.
Los
procesos
son
dependientes
del sistema
operativo.
Leer ms: http://www.monografias.com/trabajos103/procesos-y-procesadores-sistemas-distribuidos/procesosy-procesadores-sistemas-distribuidos.shtml#ixzz3aGN7aaxB

Procesador Un procesador o mejor conocido como microprocesador es la unidad de hardware que se encarga
de procesar los datos que estn almacenados en una computadora para producir cualquier tipo de
informacin de inters para los usuarios. Un microprocesador se compone de una Unidad Lgica-Aritmtica
(ALU) que se encarga de las operaciones bsicas dadas a travs de microprogramacin.
Leer ms: http://www.monografias.com/trabajos103/procesos-y-procesadores-sistemas-distribuidos/procesosy-procesadores-sistemas-distribuidos.shtml#ixzz3aGNJha6t

3.1. Hilos
En 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 inactivas
Plantea el problema de encontrar estaciones de trabajo inactivas en la red que puedan ejecutar
procesos. Por lo cual las estaciones de trabajo deben de anunciar cuando no cuentan con una carga de
trabajo asignada, as todas las dems estaciones toman nota de esto y lo registran.

Modelos de asignacin
Generalmente 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 donde colocarlo. Una vez colocado en la mquina, el
proceso permanece ah hasta que termina. No se puede mover, no importa lo sobrecargada que est la mquina.
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 respuesta


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


1Todos los procesadores ejecutan el proceso en el espacio 0 durante un cierto perodo fijo.
2Todos los procesadores ejecutan el proceso en el espacio 1 durante un cierto perodo fijo, etc.
3Se deben mantener sincronizados los intervalos de tiempo.
4Todos 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
Un sistema de archivos distribuido o sistema de archivos de red es 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 de 1970, y en 1985Sun Microsystems cre el sistema de
archivos de red NFS el cual fue ampliamente utilizado como sistema de archivos distribuido.
Otros sistemas notables utilizados fueron el sistema de archivos Andrew (AFS) y el
sistema Server Message Block SMB, tambin conocido como CIFS.

4.1. Diseo sistemas archivos

Generalmente, un sistema de archivos distribuidos consta de dos componentes muy distintos entre s:
el servicio de archivos y el servicio de directorios.
La Interfaz del Servicio de Archivos
Un archivo es una secuencia de bytes sin interpretacin alguna. Esto quiere decir que el contenido
y estructura de un archivos es interpretado por el software de aplicacin mas no por el sistema
operativo sobre 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.
La utilidad del servicio de archivos consiste en proporcionar una adecuada administracin de 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
nicas operaciones que 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 de servicios de archivos distribuidos: modelo carga/descarga y modelo de acceso remoto.
Modelo Carga/Descarga: Consiste bsicamente en dos operaciones: lectura y escritura. Como se muestra en
la Figura 1.1, la primera operacin consiste en la transferencia de un archivo completo desde el servidor hacia
el cliente solicitante; 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 en memoriao en un disco local,
segn sea el caso.
El modelo carga/descarga
Modelo 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 los clientes. Esto se muestra claramente en la Figura 1.2.
Figura 1.2. El modelo de acceso remoto
Estos dos modelos se 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 dos problemas principales por
resolver: el permiso de acceso y la gestin de 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 mucho xito (pero con algunas
deficiencias) no es ms que una lista de derechos de 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 Acceso

Descripcin

Ninguno

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

Conocimiento

El usuario conoce sobre la existencia del archivo y quin es su dueo.


Puede solicitar tener algunos derechos de acceso a este archivo.

Ejecucin

El usuario puede ejecutar y cargar el programa pero no copiarlo.

Lectura

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

Adicin

El usuario puede agregar datos al archivo (generalmente al final), pero no


puede modificar o borrar su contenido.

Actualizacin

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

Cambio de proteccin

El usuario puede cambiar los derechos de acceso que han sido otorgados

a los usuarios.
Borrado

El 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 los registros individuales 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 Directorios
El 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, Windows divide 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 que libro.txt es un archivo cuyo nombre es libro y es de tipo texto. En otros sistemas, como elUNIX,
clasifican a los archivos segn sus atributos (en UNIX un archivo ejecutable se pinta de otro color).
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 solamente rboles sino tambin grficas de directorios los cuales son ms
consistentes.
Un rbol de directorios contenido en una mquina
Esta 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 mquinas
Semntica de los Archivos Distribuidos
Existen hasta cuatro mtodos para utilizar los archivos compartidos en un sistema distribuido:
Semntica de UNIX: En la que cada operacin en un archivo es visible a todos los procesos de
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 la propiedad del 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#ixzz3aGQSxfnV

4.2. Implantacin de un sistema distribuido

Uso de Archivos
Existen 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 su estado en un instante de tiempo. Entre algunas de estas
mediciones estticas podemos encontrar: la distribucin de 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 un anlisis posterior. 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 Sistema
La 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 los servidores.
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
solamente programas del 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 de pensamiento con 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 posible la lectura adelantada
Es ms fcil la idempotencia
Es posible la cerradura de archivos
Ocultamiento
En 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
memoria principal 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 ellos
Cada lugar en donde se guarde los archivos presenta ventajas y desventajas respecto a la velocidad de
transferencia. Aun as, se puede lograr un mejor desempeo ocultando (conservando) los archivos en la
memoria principal del servidor. Como la memoria principal siempre es de menor capacidad que el disco,
entonces debe implementarse un algoritmo para 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 dos algoritmos de 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).
Rplica
En 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 de trabajo entre 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
un grupo.
Rplica explcita: Consiste en que el programador controle todo el proceso. 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#ixzz3aGQcMdbU

4.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 de comunicaciones y su
incremento en el ancho de banda la creacin de paquetes que ofrecen la comparticin de archivos es comn
de encontrarse en el mercado. 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
pequeas empresas es contar con Novell Netware en un servidor 486 o superior y acceder a los archivos
desde mquinas similares.
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 reciente
Existen muchos dispositivos hardware que en los ltimos aos estn abaratando sus costos, tales como
las memorias. 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 nueva innovacin en hardware son los discos pticos que ahora pueden ser utilizados ms de una vez.
Aunque son un poco ms caros que las cintas de video siempre 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 fibra ptica de 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
y administracin de los sistemas de archivos, por lo que en el futuro se podra aun encontrar diversos tipos
de soluciones especficas para un sistema determinado por sus propias caractersticas y requerimientos.
Escalabilidad
El concepto de 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 (LAN o 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 amplia
La mayor parte del trabajo que se realiza actualmente en los sistemas distribuidos se basa en los sistemas
alojados en redes 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 en latinoamrica utilizamos los cdigos ASCII, 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
de experimentos que 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 de fibra ptica tardar 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 mviles
A medida que la tecnologa de 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
las computadoras porttiles 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 fallas
En la actualidad, la mayor parte de los sistemas de cmputo no presentan tolerancia a 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 el control de
trfico areo, otros sistemas no presentan este comportamiento que 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 y seguros en cuanto a
tiempo de funcionamiento efectivo se refiere.
Leer ms: http://www.monografias.com/trabajos11/archi/archi.shtml#ixzz3aGQnXT3H
5.

MEMORIA DISTRIBUIDA

5.1. Que es la memoria compartida


Los sistemas de memoria 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 consistencia

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

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

Un 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

También podría gustarte