domingo, 30 de septiembre de 2012

Unidad 2: Comunicación en los Sistemas Operativos Distribuidos

2.1 Comunicacion: comunicación con cliente - servidor, comunicación con llamada a procedimiento remoto, comunicación en grupo, tolerancia a fallos.

La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes.

Un cliente realiza peticiones a otro programa, el servidor, que le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.
La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.



Las Llamadas a Procedimientos Remotos, o RPC por sus siglas en ingles (Remote Procedure Call), es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos. El protocolo es un gran avance sobre los sockets usados hasta el momento. De esta manera el programador no tenía que estar pendiente de las comunicaciones, estando éstas encapsuladas dentro de las RPC.

Las RPC son muy utilizadas dentro del cliente-servidor. Siendo el cliente el que inicia el proceso solicitando al servidor que ejecute cierto procedimiento o función y enviando éste de vuelta el resultado de dicha operación al cliente.

Hay distintos tipos de RPC, muchos de ellos estandarizados como pueden ser el RPC de Sun denominado ONC RPC , el RPC de OSF denominado DCE/RPC, Invocación de Métodos Remotos de Java y el Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM, aunque ninguno de estos es compatible entre sí. La mayoría de ellos utilizan un lenguaje de descripción de interfaz que define los métodos exportados por el servidor.

Hoy en día se está utilizando el XML como lenguaje para definir el IDL y el HTTP como protocolo de red, dando lugar a lo que se conoce como servicios web. Ejemplos de éstos pueden ser SOAP o XML-RPC.


Tolerancias a fallos es a la capacidad de un sistema de almacenamiento de acceder a información aún en caso de producirse algún fallo. Esta falla puede deberse a daños físicos (mal funcionamiento) en uno o más componentes de hardware lo que produce la pérdida de información almacenada. La tolerancia a fallos requiere para su implementación que el sistema de almacenamiento guarde la misma información en más de un componente de hardware o en una máquina o dispositivo externos a modo de respaldo. De esta forma, si se produce alguna falla con una consecuente pérdida de datos, el sistema debe ser capaz de acceder a toda la información recuperando los datos faltantes desde algún respaldo disponible.



2.2 Sincronización: relojes físicos, relojes lógicos, usos de la sincronización.

 Un sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarsede un buen desempeño y de la consistencia de los datos, además de mantener segurastodas estas operacionesLa sincronización de procesos en los sistemas distribuidos resulta más compleja que enlos centralizados, debido a que la información y el procesamiento se mantienen endiferentes nodos.
Un sistema distribuido debe mantener vistas parciales y consistentesde todos los procesos cooperativos y de cómputo. Tales vistas pueden ser provistas por los mecanismos de sincronización.


El término sincronización se define como la forma de forzar un orden parcial o total encualquier conjunto de eventos, y es usado para hacer referencia a tres problemasdistintos pero relacionados entre sí:
1.La sincronización entre el emisor y el receptor.
2.La especificación y control de la actividad común entre procesos cooperativos.
3.La serialización de accesos concurrentes a objetos compartidos por múltiples procesos.
Haciendo referencia a los métodos utilizados en un sistema centralizado, el cual haceuso de semáforos y monitores; en un sistema distribuido se utilizan algoritmosdistribuidos para sincronizar el trabajo común entre los procesos y estos algoritmos
Más informacion y descripciónde los algoritmos:

2.3 Nominación: características y estructuras, tipos de nombres, resolución y distribución, servidores y agentes de nombre, mapeo de direcciones, mapeo de rutas, modelo de Terry.



2.4 Comunicación de procesos a través del paso de mensajes en sistemas distribuidos.

No hay comentarios:

Publicar un comentario