Knoppia

Wiki de Informática y otras historias

Herramientas de usuario

Herramientas del sitio


Barra lateral

Proyecto Integral de Ingeniería del Software
Metodologías Ágiles
Trabajo Fin De Grado
Guía Memoria TFG

Colecciones

Otros

dad:comunicacion_entre_procesos

Comunicación Entre Procesos

Conceptos básicos

Es necesario un protocolo que establecerá quien es el emisor y quien el receptor Tipos de comunicación:

  • Unicast: De un proceso a otro, una sola comunicación
  • Multicast: desde un proceso a varios

Operaciones primitivas básicas:

  • Enviar
  • Recibir
  • Conectar: Inicia proceso de solicitar conexión y otro de aceptar conexión
  • Desconectar: Finaliza el proceso anterior

Los extremos de comunicación son independientes. Tienen que haber funciones que eviten que se bloquee infinitamente nuestro programa al hacer una petición a un servidor. Las soluciones son TimeOut y esto debe estar en un hilo para que no se tumbe el proceso principal. Las operaciones pueden ser síncronas(bloqueantes) o asíncronas(no bloqueantes).

Escenarios de comunicación

  • Enviar Síncrono y recibir asíncrono
    • Caso 2: El emisor se puede quedar bloqueado indefinidamente a menos que haya un timeout o sea en un Hilo.
    • Caso 3: El sistema debe tener un mecanismo que informe de que los datos han llegado (CallBack).
  • Enviar asíncrono y recibir asíncrono

Temporizadores:

  • El bloqueo permite la sincronización pero es inaceptable bloquear el proceso
  • Como medida se usan temporizadores.

Representación de los datos

  • Las aplicaciones utilizan estructuras de datos para representar la información.
  • El emisor y receptor pueden ser diferentes y utilizar codificaciones diferentes
  • Tenemos 3 soluciones:
    • Convertir en origen
    • Convertir en destino
    • Utilizar representación externa
  • Se suele hacer lo siguiente:
    • Aplanado de datos en un extremo: Marshaling
    • Transmisión de los datos
    • Reconstrucción de los datos en el otro extremo: Unmarshaling
dad/comunicacion_entre_procesos.txt · Última modificación: 2023/10/16 11:14 por thejuanvisu