Introducción a la Comunicación en los Sistemas Distribuidos 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[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 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 8.1
[25, Tanenbaum]):
- 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) [26, Tanenbaum].
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 (ver Figura 8.2 [25, Tanenbaum]).

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