jueves, 17 de mayo de 2012

Comunicación en los Sistemas Distribuidos

Hablemos un poco de como es la comunicacion en los Sistemas Distribuidos, primero que nada, ¿Que es?

Definición:

"Sistemas cuyos componentes hardware y software, que están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un esquema cliente-servidor".


Características:
  • Concurrencia.- Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red.
  • Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización general, esta más bien distribuida a los componentes.
  • Fallos independientes de los componentes.- Cada componente del sistema puede fallar independientemente, con lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando.
La diferencia más importante entre un sistema distribuido y un sistema de un único procesador es la comunicación entre procesos.

En un sistema de un solo procesador la comunicación supone implícitamente la existencia de la memoria compartida:
Ej.: problema de los productores y los consumidores, donde un proceso escribe en un buffer compartido y otro proceso lee de él.
En un sistema distribuido no existe la memoria compartida y por ello toda la naturaleza de la comunicación entre procesos debe replantearse.
Los procesos, para comunicarse, deben apegarse a reglas conocidas como protocolos.

Para los sistemas distribuidos en un área amplia, estos protocolos toman frecuentemente la forma de varias capas y cada capa tiene sus propias metas y reglas.

Los mensajes se intercambian de diversas formas, existiendo muchas opciones de diseño al respecto; una importante opción es la “llamada a un procedimiento remoto”.

También es importante considerar las posibilidades de comunicación entre grupos de procesos, no solo entre dos procesos.

Protocolos con Capas

Debido a la ausencia de memoria compartida, toda la comunicación en los sistemas distribuidos se basa en la transferencia de mensajes.

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 envíe a través de la red hacia “B”.
  • Para evitar el caos, “A” y “B” deben coincidir en el significado de los bits que se envíen.

Los puntos de acuerdo necesarios incluyen lo siguiente:

  • ¿Cuántos voltios hay que utilizar para un bit “0” y cuántos para un bit “1”?.
  • ¿Cómo sabe el receptor cuál es el último bit del mensaje?.
  • ¿Cómo puede detectar si un mensaje ha sido dañado o perdido, y qué debe hacer si lo descubre?.
  • ¿Qué longitud tienen los números, cadenas y otros elementos de datos y cuál es la forma en que están representados?.

La ISO (Organización Internacional de Estándares) desarrolló un modelo de referencia que (ver figura de abajo):

  • Identifica en forma clara los distintos niveles.
  • Estandariza los nombres de los niveles.
  • Señala cuál nivel debe realizar cuál trabajo
Este modelo se denomina “modelo de referencia para interconexión de sistemas abiertos” (ISO OSI o modelo OSI)

El “modelo OSI” está diseñado para permitir la comunicación de los sistemas abiertos:

  • Son aquellos preparados para comunicarse con cualquier otro sistema abierto mediante reglas estándar:
    • Establecen el formato, contenido y significado de los mensajes recibidos y enviados.
    • Constituyen los protocolos, que son acuerdos en la forma en que debe desarrollarse la comunicación



El “modelo OSI” distingue entre dos tipos generales de protocolos:
  • Orientados hacia las conexiones:
    • Antes de intercambiar los datos, el emisor y el receptor:
      • Establecen en forma explícita una conexión.
      • Probablemente negocien el protocolo a utilizar.
      • Al finalizar, deben terminar la conexión.
      • El teléfono es un sistema de comunicación orientado hacia la conexión.
  • Sin conexión:
    • No es necesaria una configuración de antemano.
    • El emisor transmite el primer mensaje cuando está listo.
    • El depósito de una carta en un buzón es una comunicación sin conexión.
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 información de la capa “n”.

Cada protocolo de capa se puede cambiar independientemente de los demás:

  • Esto es de fundamental importancia.
  • Confiere gran flexibilidad.

La colección de protocolos utilizados en un sistema particular se llama una “suite de protocolo” o “pila de protocolo”.