T6 - Paso de Mensajes
Click here to load reader
-
Upload
miguel-angel-cantero -
Category
Documents
-
view
5 -
download
1
description
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