junio 09, 2022

Comunicación entre Procesos

En la comunicación entre procesos, un proceso envía un mensaje (una secuencia de bytes) a un destino y otro proceso en el destino recibe el mensaje. Esta actividad implica la comunicación de datos desde el proceso de envío al proceso de recepción y puede incluir  la sincronización entre los dos procesos.

La comunicación se establece siguiendo una serie de reglas o protocolos de comunicación.  Los protocolos usados para este propósito son los desarrollados para internet:  en la capa de red (IP), capa de transporte (TCP, UDP), capa de aplicación (HTTP, FTP).

Características de la comunicación entre procesos [1]

  • Comunicación síncrona y asíncrona. Se asocia una cola a cada destino de mensaje. Los procesos de envío hacen que los mensajes se agreguen a las colas remotas y los procesos de recepción eliminan los mensajes de las colas locales.
    • Síncrona, los procesos de envío y recepción se sincronizan en cada mensaje. Quien envía permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otro ejercicio.
    • Asíncrona:  Operación de envío es no-bloqueante ya que  permite que el proceso de envío continúe tan pronto como el mensaje se ha copiado en un bufer local.  Operación de recepción puede ser bloqueante y no-bloqueante  ( el proceso de recepción continúa con su programa después de emitir una operación de recepción, y que proporciona un búfer para llenar en segundo plano).
  • Destino de los mensajes:  Un puerto local es un destino de mensaje y es especificado como un número entero. Un puerto tiene exactamente un receptor (exceptuando los puertos de multidifusión) pero puede tener muchos remitentes.
  • Confiabilidad. Un servicio de mensajes punto a punto puede describirse como confiable si se garantiza que los mensajes se entregarán a pesar de que se pierda o se pierda una cantidad razonable de paquetes.  Para la propiedad de integridad , los mensajes deben llegar sin corrupción y sin duplicación.
  • Ordenamiento. Algunas aplicaciones requieren que los mensajes se entreguen en el orden del remitente, es decir, el orden en que fueron transmitidos por el remitente. Dichas aplicaciones consideran  que la entrega de mensajes fuera del orden del remitente es un error.

Referencias

  1. Coulouris, George F. Distributed Systems: Concepts and Design. Boston: Addison-Wesley, 2012.
  2. Tanenbaum, Andrew S., and Maarten van Steen. Distributed Systems: Principles and Paradigms. Upper Saddle River, NJ: Pearson Prentice Hall, 2007. 

No hay comentarios.:

Publicar un comentario