Ir al contenido principal

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


Comentarios

Publicar un comentario

Entradas populares de este blog

Pequeño Juego con LEDS y Dip Switch

Siguiendo con los mini-proyectos, lo que quería hacer originalmente era un tipo "candado" con push-button y LEDs, el objetivo seria, meter la combinacion de botones correcta y los LEDS encendería por un motivo practico, en forma de serpiente. El objetivo no cambio, pero por falta de "material" lo hice con un dip switch de X entradas(depende de que tan grande quieras la combinación). CONOCIMIENTOS(max. 7 estrellas): Electronica:     ★ ★ Programación: ★ ★ Juego de Combinación + LEDs El programa es un poco mas complicado que el mini-proyecto pasado , pero aun asi es basico. Guardamos las salidas de los LEDs en un arreglo, despues con los valores recibidos y comparados de los dip switch jugamos con los LEDś. Hardware Requerido (1) Arduino Uno (6) LED (8) Resistencias 330 Ω (1) Dip Switch Circuito Usamos las salidas del ARduino 2-7 para los LEDS Usamos la salida A5, A4 para el dip switch Para hacer prender los LEDS tienes que encontrar la

Tarea #5 - Codigo Hamming - Python

Codigo hamming Liga al repo Teoria segun wikipedia Antes de los códigos Hamming se utilizaron ciertos códigos detectores de error, como lo fueron el código linteing, pero ninguno llegó a ser tan eficaz como los de Hamming. A continuación se describen algunos de estos códigos. Paridad   La   paridad   consiste en añadir un bit, denominado   bit de paridad , que indique si el número de los bits de valor 1 en los datos precedentes es par o impar. Si un solo bit cambiara por error en la transmisión, el mensaje cambiará de paridad y el error se puede detectar (nótese que el bit donde se produzca el error puede ser el mismo bit de paridad). La convención más común es que un valor de paridad   1   indica que hay un número impar de unos en los datos, y un valor de paridad de   0   indica que hay un número par de unos en los datos. info. completa y un vídeo que me ayudo mucho para esta tarea: (TIENEN QUE VERLO - OBLIGATORIO) http://www.youtube.com/watch?v=xiDPFm9PeLU Impleme

Potenciometro + pushboton + led

Bueno, estos días he estado practicando con los ejemplos de la pagina de Arduino , algunos que me llamaron la atención los voy a compartir, por supuesto con modificaciones. Nivel de conocimientos: Electronica:        ★   Programació n :    ★    Potenciometro + push-boton = LEDintensidad El mini-proyecto es controlar la intensidad de un LED mediante un potenciometro el cual combinado con push-botton para prenderlo o apagarlo. Hardware Requerido (1) Arduino UNO (1) Potenciometro (1) Push-boton (1) LED (1) Resistencia 330 Ω Circuito Conectamos el LED al PIN 9 del Arduino Conectamos el PUSH_BOTON al PIN ANOLOGICO 0 (A0) Conectamos el POTENCIOMETRO al PIN ANOLOGICO 1 (A1) El funcionamiento del circuito es basico, mientras tengas pulsado el Push-Boton el LED se mantendrá encendido y con el pontenciometro controlas la intensidad del LED. Código Video