Ampliación de Sistemas Operativos: redes y comunicación entre sistemas

Documento de UEMC Universidad Europea Miguel de Cervantes sobre Ampliación de Sistemas Operativos. El Pdf, un material de estudio de Informática para Universidad, explora parámetros de red, comunicación entre procesos, sockets, RPC y RMI, con ejemplos y diagramas claros.

Ver más

18 páginas

TEMA 5
Redes y comunicación entre sistemas
1
ASIGNATURA
Ampliación de
Sistemas
Operativos
GRADO EN INGENIERÍA INFORMÁTICA
TEMA 5
Redes y comunicación
entre sistemas.
Autor: Lorena Calavia Domínguez
TEMA 5
Redes y comunicación entre sistemas
2
Unidad didáctica.
Tema 5: Redes y comunicación entre
sistemas
INDICE
I. PRESENTACION .................................................................................................. 3
II. OBJETIVOS. ..................................................................................................... 4
III. ESQUEMA ........................................................................................................ 4
IV. CONTENIDO ..................................................................................................... 5
1. Parámetros de red en sistemas distribuidos ..................................................... 5
2. Comunicación entre procesos ....................................................................... 6
3. Sockets .................................................................................................. 7
3.1. Sockets en Java .................................................................................. 8
4. Llamada a procedimiento remoto ................................................................ 10
4.1. Cliente ........................................................................................... 11
4.2. Servidor ......................................................................................... 11
5. Invocación a objeto remoto ....................................................................... 12
5.1. Java RMI ......................................................................................... 15
V. RESUMEN ...................................................................................................... 17
VI. BIBLIOGRAFIA ................................................................................................ 18

Visualiza gratis el PDF completo

Regístrate para acceder al documento completo y transformarlo con la IA.

Vista previa

ASIGNATURA

Ampliación de Sistemas Operativos

GRADO EN INGENIERÍA INFORMÁTICA

TEMA 5 Redes y comunicación entre sistemas

Autor: Lorena Calavia Domínguez UEMO universidad online UEMC Universidad Europea Miguel de Cervantes

Redes y comunicación entre sistemas

Unidad didáctica

Tema 5: Redes y comunicación entre sistemas

INDICE

  1. PRESENTACION
  2. OBJETIVOS.
  3. ESQUEMA.
  4. CONTENIDO

1. Parámetros de red en sistemas distribuidos 2. Comunicación entre procesos. 3. Sockets 3.1. Sockets en Java 4. Llamada a procedimiento remoto 4.1. Cliente 4.2. Servidor 5. Invocación a objeto remoto 5.1. Java RMI V. RESUMEN VI. BIBLIOGRAFIA

UEMOP universidad online 2 5

Redes y comunicación entre sistemas

I. PRESENTACION

En el ámbito de los sistemas distribuidos, la comunicación entre procesos desempeña un papel fundamental. La gestión de las comunicaciones a través de una red se beneficia de la utilización de una pila de protocolos, lo que da lugar a una arquitectura en niveles. Esta estructura jerárquica define diferentes capas de comunicación, cada una encargada de aspectos específicos, lo que facilita la interoperabilidad y el desarrollo de sistemas distribuidos complejos.

En este tema, se exploran dos tipos de comunicaciones ampliamente utilizados en sistemas distribuidos: la comunicación mediante datagramas (UDP) y la comunicación mediante streams (TCP). Cada uno de ellos presenta características particulares que se adaptan a distintos escenarios y requisitos de los sistemas distribuidos.

A continuación, como alternativa a la comunicación tradicional entre procesos, se trata el concepto de llamada a procedimiento remoto (RPC) y la invocación a objeto remoto. Estos mecanismos permiten la interacción transparente entre procesos distribuidos, facilitando la ejecución de procedimientos o métodos en máquinas remotas.

Para finalizar, se verá un ejemplo concreto de invocación a objetos remotos: Java RMI (Remote Method Invocation), que implementa este mecanismo en el lenguaje Java.

El tema se va a dividir en 5 puntos:

  • Parámetros de red en sistemas distribuidos
  • Comunicación entre procesos
  • Sockets
  • Llamada a procedimiento remoto (RPC)
  • Invocación a objeto remoto

Se recomienda tener conocimientos de Java para tener éxito en el estudio y superación de este tema.

Para el desarrollo de este tema se han utilizado la referencia Coulouris (2007) y Muñoz (2012).

UEMOP universidad online 3

Redes y comunicación entre sistemas

II. OBJETIVOS.

  • Conocer los dos tipos de comunicaciones básicos utilizando sockets: la comunicación mediante datagramas (UDP) y la comunicación mediante streams (TCP).
  • Comprender el concepto de llamada a procedimiento remoto (RPC) y cómo se aprovecha el principio de ocultación o encapsulación para su implementación.
  • Conocer el concepto de invocación a objeto remoto en aplicaciones orientadas a objetos.
  • Entender el papel del ORB (Object Request Broker) en la invocación a objeto remoto.
  • Conocer Java RMI como ejemplo de implementación del mecanismo de invocación a objetos remotos para el lenguaje Java.

III. ESQUEMA

El tema se va a estructurar de la siguiente manera:

Redes y comunicación entre sistemas

Parámetros de red en sistemas distribuidos

Comunicación entre procesos

Sockets

Llamada a procedimiento remoto (RPC)

Invocación a objeto remoto

UEMOP universidad online 4

Redes y comunicación entre sistemas

IV. CONTENIDO

1. Parámetros de red en sistemas distribuidos

La mayoría de sistemas distribuidos se sostienen sobre diferentes tipos de redes. Las redes están formadas por medios de transmisión (coaxial, fibra óptica, canales inalámbricos, etc.), hardware (routers, switches, bridges, hubs, etc.) y software (protocolos, drivers, etc.) heterogéneos.

Para facilitar el uso heterogéneo de recursos puede hacer uso de middleware.

Por otra parte, los parámetros fundamentales de las redes en sistemas distribuidos son:

  • Latencia: intervalo de tiempo entre el envío de una solicitud y el instante en el que los datos comienzan a estar disponibles en el destino. Se puede medir solicitando el envío de un mensaje vacío.
  • Round Trip Time o RTT en TCP: tiempo que se tarda en enviar un bit a través del canal de comunicación y recibir la respuesta del receptor.
  • Tasa de transferencia de datos: velocidad a la que se transfieren los datos entre dos nodos (medida en bits por segundo).
  • Ancho de banda: volumen máximo de tráfico que se puede transferir en un intervalo de tiempo dado.

De manera simplificada:

tiempo de transmisión=latencia+longitud/tasa transmisión

Si se segmentan los datos el tiempo de transmisión es la suma de los tiempos de transmisión de todos los datos. En este caso, para mensajes cortos la latencia cobra mayor importancia (Figura 1).

User Server User Server

HTTP get file HTTP get file

TCP DATA TCP DATA

file rec'd file rec'd

Figura 1. Segmentación de paquetes

UEMOP universidad online 5

Redes y comunicación entre sistemas

2. Comunicación entre procesos

Para gestionar las comunicaciones a través de una red resulta conveniente utilizar una pila de protocolos, definiendo así una arquitectura en niveles. De esta manera, cada nivel utiliza un protocolo determinado y así se preocupa por solucionar alguno de los problemas que la comunicación conlleva.

Una primera arquitectura de este tipo fue el modelo OSI (no tuvo un amplio seguimiento) y actualmente la mayoría de los sistemas de comunicaciones han optado por la utilización de la arquitectura TCP/IP.

Nodo emisor Nodo receptor

Aplicación I Transporte

Pasarela Pasarela

Red I Enlace Físico

RED

Figura 2. Modelo de capas TCP/IP (Fuente: Muñoz).

El paso de mensajes entre un par de procesos se puede basar en dos operaciones: envía y recibe. Para que un proceso se pueda comunicar con otro el proceso envía un mensaje al destino y el otro proceso, en destino recibe el mensaje.

La comunicación entre emisor y receptor puede ser:

  • Síncrona: procesos de envío y recepción bloqueantes para sincronizar
  • Asíncrona: proceso de envío no bloqueante, proceso de recepción puede ser o no bloqueante.

Los procesos bloqueantes son los más comunes en los sistemas actuales, ya que realmente con múltiples hilos no se paraliza el procesado y reduce la necesidad de control de flujo.

UEMOP universidad online 6

Redes y comunicación entre sistemas

Client Server Client Server

send(Server, Client, message) send(Server, Client, message)

receive(Client, buffer) blocked

The Server is executing on the message and process a response

receive(Server, buffer) receive(Server, buffer) blocked

send(Client, Server, response)

+ Time Time Time Time

Figura 3. Comparación comunicación síncrona (izquierda) y asíncrona (derecha)

Los mensajes son enviados a direcciones construidas por pares (dirección Internet, puerto). Un puerto tiene un receptor pero múltiples emisores. Si un cliente utiliza una dirección fija para referirse a un servicio, este servicio debería ejecutarse siempre en el mismo computador para que la dirección se considere válida. Esto se puede evitar. Se suele utilizar un enlazador entre los servicios, los procesos y sus direcciones y puertos o los sistemas operativos pueden proporcionar identificadores para procesos destino independientemente de su localización para facilitar la migración.

La ventaja de utilizar puertos y no procesos es que proporcionan varios puntos de entrada al proceso receptor (los procesos pueden recibir información en múltiples puertos).

3. Sockets

La comunicación entre procesos consiste en la trasmisión de un mensaje entre un conector de un proceso y un conector de otro proceso. Para los procesos receptores, su conector debe estar asociado a un puerto local y la dirección de Internet donde se ejecuta. Los mensajes enviados a una dirección y puerto concretos sólo pueden ser recibidos por el proceso cuyo conector este asociado a esa dirección y puerto. Los procesos pueden utilizar el mismo conector para enviar y recibir mensajes.

Cualquier puerto

Puerto acordado

D 26

Socket Socket

Mensaje

Cliente Servidor

Otros puertos

Figura 4. Comunicación mediante sockets (Fuente: Colouris).

UEMOP universidad online 7

Redes y comunicación entre sistemas

En este tema vamos a tratar dos tipos de comunicaciones:

  • Comunicación mediante datagramas (UDP): sin acuse de recibo ni reintentos. El proceso receptor especifica el tamaño concreto de la cadena de bytes sobre la que almacenará el mensaje recibido. En este caso el envío es no bloqueante y la recepción es bloqueante (con posibilidad de timeout). En caso de fallo se desechan los mensajes de manera ocasional (no hay asociado ningún proceso al conector destino). En este caso no coincide el orden de emisión y de recepción, pero no genera sobrecargas al no garantizar la entrega de los mensajes, ya que no almacena información de estado en origen y en el destino y no transmite mensajes extra.
  • Comunicación mediante streams (TCP): Los streams poseen un nivel mayor de abstracción. En este caso no necesita especificar el tamaño de los datos y los datos se proporcionan según se van solicitando. Utiliza acuse de recibo de manera que si el emisor no recibe el acuse de recibo dentro del timeout retransmite el mensaje automáticamente. Además, utiliza control de flujo para ajustar las velocidades de transmisor y receptor y un identificador de paquetes posibilita su ordenación y la detección de duplicidades. En este tipo de comunicación se establece la conexión antes de empezar a transmitir mediante streams. Una vez establecida la conexión, la lectura y escritura no requiere direcciones ni puertos, pero la abstracción crea sobrecargas en mensajes cortos. En este modelo de comunicación debe haber concordancia entre el formato de los datos entre transmisor y receptor. Además, la lectura bloquea hasta que se disponga de datos en el buffer de entrada. Cada cliente debe utilizar un hilo diferente para no bloquear al resto.

Habitualmente se emplean mecanismos adicionales para el control de fallos como códigos de redundancia cíclica y rechazo de paquetes corruptos.

3.1. Sockets en Java

Cuando se escriben programas Java que se comunican a través de la red, se está programando en la capa de aplicación. No se necesita trabajar con las capas TCP y UDP. Utilizaremos java.net.

El paquete java.net proporciona, entre otras, las siguientes clases:

  • Socket: Implementa un extremo de la conexión TCP (cliente).
  • ServerSocket: Se encarga de implementar el extremo servidor de la conexión en la que se esperaran las conexiones de los clientes.
  • DatagramSocket: Maneja los conectores para enviar y recibir datagramas UDP. Implementa tanto el servidor como el cliente cuando se utiliza UDP.

UEMOP universidad online 8

¿Non has encontrado lo que buscabas?

Explora otros temas en la Algor library o crea directamente tus materiales con la IA.