T6 - Paso de Mensajes

11

Click here to load reader

description

Paso mensajes

Transcript of T6 - Paso de Mensajes

  • 1

    Programacin Concurrente

    1

    Grado en Informtica

    Tema 6

    Paso de Mensajes (message-passing)

    Bibliografa

    Programacin Concurrente

    J. Palma, C. Garrido, F. Snchez, A. Quesada,

    2003

    Captulo 7

    Concurrent Programming

    A. Burns, G. Davies. Addison-Wesley, 1993

    Captulo 4

    2

  • 2

    Sistemas de paso de mensajes

    Los semforos, monitores, regiones crticas, etc. son todas herramientas que se basan en la existencia de memoria compartida.

    El modelo de memoria compartida es difcil de trasladar a un sistema distribuido, en el que no existe fsicamente comparticin de memoria.

    3

    Servidor Web

    Red

    Mvil Consola PC

    4

    Sistemas distribuidos

    Mltiples procesadores conectados mediante una red

    Los procesadores no comparten memoria ni reloj

    Los sistemas conectados pueden ser de cualquier tipo

    Escalable hasta millones de procesadores (ej. Internet)

    Comunicacin mediante mensajes

  • 3

    Sistemas de paso de mensajes

    Como alternativa al modelo de memoria

    compartida, se define el modelo de paso de

    mensajes:

    Un proceso enviar (SEND) un mensaje.

    Otro proceso esperar (WAIT-RECEIVE) que

    llegue.

    5

    Sorprendentemente la definicin de estas operaciones SEND y WAIT

    puede estar basada en una variedad de factores independientes

    dando lugar a muchos modelos diferentes de estas primitivas de paso

    de mensajes (message-passing)

    Modelo general

    Emisor Receptor CANAL

    mensaje

    enviar-send() recibir-receive()

    6

  • 4

    Aspectos de diseo

    Qu forma de sincronizacin entre emisor y

    receptor, utilizar?

    Comunicacin sncrona/asncrona

    Cmo identificar los procesos origen y destino?

    Comunicacin directa/indirecta

    Comunicacin simtrica/asimtrica

    Caractersticas del canal

    Capacidad, flujo de la comunicacin, etc...

    7

    Sistemas de paso de mensajes

    8

  • 5

    Ventajas del modelo basado en paso de mensajes

    Vlido para cualquier arquitectura de

    computadores

    Sistemas distribuidos.

    Arquitecturas paralelas sin memoria compartida.

    Tambin en sistemas de memoria compartida.

    Desaparece el problema del acceso en exclusin

    mutua a datos compartidos

    (No hay datos fsicamente compartidos)

    9

    11

    Sincronizacin

    Considera el comportamiento del emisor de

    un mensaje (3 Tipos fundamentales):

    Send asncrono

    Send and continue working (e-mail, sms)

    Send sncrono (rendezvous simple)

    Send and wait for the message to be received

    (fax)

    Extended rendezvous/Invocacin Remota

    Send and wait for reply (Llamada telefnica)

  • 6

    12

    Sincronizacin

    Si el emisor es delayed hasta que el correspondiente

    receive() es ejecutando, entonces el paso de

    mensajes se dice que es sncrono

    Alternativamente si el proceso emisor contina

    ejecutndose arbitrariamente tras un send() la

    comunicacin se denomina asncrona

    13

    Repercusiones de la comunicacin asncrona

    El emisor puede enviar varios mensajes sin que

    sean atendidos:

    necesidad de disponer de buffers en el cliente o

    en el servidor

    Cundo sabe el emisor que su mensaje ha

    llegado/se ha atendido?

    conveniencia de operaciones de acuse de

    recibo o de respuesta

    (send receive send_reply receive_reply)

  • 7

    14

    Ejemplos

    ADA

    Utiliza rendezvous (sncrono)

    Erlang

    Utiliza PM asncrono

    JAVA tiene bibliotecas (libraries)

    Sockets (PM asncrono)

    RMI (Se puede ver como un PM sncrono)

    Pascal-FC

    Sncrono

    Invocacin Remota

    Identificacin de los procesos: Naming

    Cmo se refieren mutuamente emisor y

    receptor cuando se utiliza paso de mensajes?

    Dos aspectos independientes a tener en cuenta:

    Nombrado directo o indirecto

    Esquema de nombres simtrico o asimtrico

    16

  • 8

    Identificacin de los procesos: Comunicacin directa

    Nombres nicos para cada proceso en el sistema

    Se nombra explcitamente quin es el otro extremo

    de la comunicacin (emisor o receptor).

    send(P, mensaje)

    Enviar un mensaje al proceso P

    Respuesta simtrica:

    receive(Q, mensaje)

    Recibir un mensaje del proceso Q

    Respuesta asimtrica:

    receive(mensaje)

    Recibir un mensaje

    17

    Identificacin de los procesos: Directa simtrica

    18

  • 9

    Identificacin de los procesos: Directa Asimtrica

    19

    Identificacin de los procesos: comunicacin indirecta

    No se nombra directamente al otro extremo de

    la comunicacin.

    Los mensajes se envan y se reciben sobre

    buzones (channel, service name or a mailbox)

    enviar(buzonA, mensaje)

    Enviar un mensaje al buzn A

    recibir(buzonA, mensaje)

    Recibir un mensaje del buzn A

    20

  • 10

    Identificacin de los procesos(cont.): Indirecta

    21

    Mensajes perdidos

    Mensajes perdidos

    Fallo hardware o de la lnea de comunicacin

    Tres mtodos para enfrentar este suceso en funcin de quien asume la responsabilidad de detectar el fallo:

    SO

    Emisor

    SO/Emisor

    28

  • 11

    Ejercicio 3:

    Implementar el problema de la Comida de

    Filsofos con paso de mensaje asncrono.

    33