PDF de programación - Tema3. Paso de Mensajes

Imágen de pdf Tema3. Paso de Mensajes

Tema3. Paso de Mensajesgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 23 de Febrero del 2018)
600 visualizaciones desde el 23 de Febrero del 2018
79,6 KB
30 paginas
Creado hace 19a (25/05/2004)
Tema 3. Paso de
Tema 3. Paso de

mensajes
mensajes

Bibliografía
(cid:132) Programación Concurrente

(cid:132) J. Palma, C. Garrido, F. Sánchez, A. Quesada, 2003
(cid:132) Capítulo 7

(cid:132) Principles of Concurrent and Distributed Programming

(cid:132) M. Ben-Ari. Prentice Hall, 1990
(cid:132) Capítulo 7

(cid:132) Sistemas Operativos

(cid:132) A. Silberschatz, P. Galvin. Addison Wesley Longman, 1999
(cid:132) Capítulo 4.6

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

2

Sistemas de paso de mensajes
(cid:132) Los semáforos, monitores, regiones
críticas, etc. son todas herramientas
que se basan en la existencia de
memoria compartida.

(cid:132) El modelo de memoria compartida es

difícil o imposible de trasladar a un
sistema distribuido, en el que no existe
físicamente compartición de memoria.

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

3

Sistemas de paso de mensajes
(2)
(cid:132) Como alternativa al modelo de memoria

compartida, se define el modelo de
paso de mensajes:
(cid:132) los procesos no comparten memoria

(variables, objetos, etc.)

(cid:132) la comunicación se hace mediante

operaciones explícitas de envío y recepción

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

4

Modelo general

Emisor

mensaje

CANAL

Receptor

enviar

recibir

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

5

Ventajas del paso de
mensajes
(cid:132) Válido para cualquier arquitectura de

computadores
(cid:132) sistemas distribuidos
(cid:132) arquitecturas paralelas sin memoria compartida
(cid:132) también en sistemas de memoria compartida

(cid:132) No existe el problema universal del acceso en

exclusión mutua a datos compartidos.

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

6

Memoria Compartida OR/XOR
Paso de Mensajes
(cid:132) Ambos esquemas de comunicación NO

son mutuamente exclusivos

(cid:132) Podrían utilizarse simultáneamente

dentro de un mismo SO o lenguaje, o
incluso dentro de un mismo proceso

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

7

Aspectos de diseño
(cid:132) Sincronización entre emisor y receptor

(cid:132) Comunicación síncrona/asíncrona

(cid:132) Identificación en el proceso de comunicación

(cid:132) Comunicación directa/indirecta
(cid:132) Comunicación simétrica/asimétrica

(cid:132) Características del canal

(cid:132) Capacidad, uni/bidireccional, etc...

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

8

Aspectos de diseño
(cid:132) Identificación en el proceso de

comunicación
(cid:132) nombrado, denominación,

direccionamiento

(cid:132) Sincronización
(cid:132) Características del canal

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

9

Identificación
(cid:132) Comunicación directa

(cid:132) Cada proceso que desea comunicarse debe
nombrar explícitamente el destinatario o el
remitente de la comunicación
(cid:132) enviar(P, mensaje)

(cid:132) Enviar un mensaje al proceso P

(cid:132) recibir(Q, mensaje)

(cid:132) Recibir un mensaje del proceso Q

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

10

Identificación
(cid:132) Comunicación indirecta

(cid:132) Con la comunicación indirecta, los

mensajes se envían a, y se reciben de,
buzones (también llamados puertos)
(cid:132) enviar(A, mensaje)

(cid:132) Enviar un mensaje al buzón A

(cid:132) recibir(A, mensaje)

(cid:132) Recibir un mensaje del buzón A

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

11

Identificación
(cid:132) Ventajas/Desventajas
(cid:132) Cambio identificación
(cid:132) Mensajes distinta naturaleza
(cid:132) Aplicaciones cliente/servidor
(cid:132) Identificación en sistemas distribuidos

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

12

Identificación
(cid:132) Comunicación simétrica

(cid:132) Los procesos tanto receptor como emisor

necesitan nombrar al otro para
comunicarse

(cid:132) Comunicación asimétrica

(cid:132) Sólo el emisor nombra al destinatario
(cid:132) Resuelve el problema en aplicaciones

cliente/servidor

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

13

Sincronización
(cid:132) Com. síncrona. El intercambio de un

mensaje es una operación atómica que exige
la participación simultánea del emisor y el
receptor (rendezvous)
(cid:132) Extended rendezvous, Encuentro extendido o

Invocación remota

(cid:132) Com. asíncrona. El emisor puede enviar un
mensaje sin bloquearse; el receptor lo puede
recoger más tarde.

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

14

Repercusiones de la
comunicación asíncrona
(cid:132) El emisor puede enviar varios mensajes:

(cid:132) necesidad de disponer de búferes

(cid:132) ¿Cuándo sabe el emisor que su mensaje

ha llegado/se ha atendido?
(cid:132) conveniencia de operaciones de “acuse de

recibo” o de respuesta
(send (cid:198) receive (cid:198) send_reply (cid:198)
receive_reply)

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

15

Llamadas bloqueantes / no
bloqueantes
(cid:132) Las operaciones de envío y recepción

pueden estar definidas como
bloqueantes o no bloqueantes

(cid:132) Un envío/recepción con bloqueo es un

ejemplo de comunicación síncrona

(cid:132) Un envió/recepción sin bloqueo es un

ejemplo de comunicación asíncrona

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

16

Ejemplos
(cid:132) Comunicación directa simétrica

(cid:132) Enviar(P,mensaje)/Recibir(Q,mensaje)

(cid:132) Comunicación directa asimétrica

(cid:132) Enviar(P,mensaje)/Recibir(mensaje)
(cid:132) Enviar(P,mensaje)/Recibir(id,mensaje)

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

17

Características del canal
(cid:132) Punto a punto, multipunto
(cid:132) Unidireccional, bidireccional
(cid:132) Capacidad del canal

(cid:132) cero
(cid:132) limitada
(cid:132) infinita (teórico)

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

18

Características del canal
(cid:132) Flujo de datos

(cid:132) Enlaces unidireccionales (síncrona) o
bidireccionales (síncrona o asincrona)

(cid:132) Capacidad del canal

(cid:132) cero, limitada, infinita (teórico)

(cid:132) Tamaño de los mensajes

(cid:132) Longitud fija o variable

(cid:132) Canales con tipo o sin tipo
(cid:132) Paso por copia o por referencia

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

19

Características del canal de
comunicación: ejemplos
(cid:132) Comunicación directa

(cid:132) Se establece automáticamente
(cid:132) Un canal se asocia a exactamente dos

procesos

(cid:132) Entre cada par de procesos sólo existe un

canal

(cid:132) El enlace puede ser unidireccional, pero

suele ser bidireccional

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

20

Características del canal de
comunicación: ejemplos
(cid:132) Comunicación indirecta

(cid:132) Se establece un canal entre un par de procesos

sólo si tienen un buzón compartido

(cid:132) Un canal puede estar asociado a más de dos

procesos

(cid:132) Entre cada par de procesos en comunicación

puede haber varios enlaces distintos, cada un de
los cuales corresponderá a un buzón

(cid:132) Los enlaces pueden ser unidireccionales o

bidireccionales

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

21

Condiciones de error
(cid:132) 1 máquina => los mensajes se implementan

(generalmente) en memoria compartida
(cid:132) Fallo => falla todo el sistema

(cid:132) Entornos distribuidos => procesos residen en

diferentes máquinas
(cid:132) Los mensajes se transfieren por líneas de comunicación
(cid:132) La probabilidad de que ocurra un error durante la

comunicación y el procesamiento es mucho mayor que en un
entorno de una sola máquina

(cid:132) El fallo de un enlace no causa necesariamente el fallo de todo

el sistema

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

22

Condiciones de error
(cid:132) Cuando ocurre un fallo en un sistema, sea
centralizado o distribuido, el sistema debe
intentar recuperarse del error
(cid:132) Algunas situaciones de error:

(cid:132) El emisor o el receptor podría terminar antes de

que se procese un mensaje
(cid:132) P espera un mensaje de Q (proceso terminado)
(cid:132) P envía un mensaje a Q (proceso terminado)

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

23

Condiciones de error
(cid:132) Mensajes perdidos

(cid:132) Fallo hardwareo de la línea de comunicación
(cid:132) Tres métodos para enfrentar este suceso

en función de quien asume la
responsabilidad de detectar el fallo:
(cid:132) SO
(cid:132) Emisor
(cid:132) SO/Emisor

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

24

Condiciones de error
(cid:132) No siempre es necesario detectar los

mensajes perdidos => protocolos de red
que garantizan la confiabilidad

(cid:132) ¿Cómo detectar la pérdida de mensajes?
(cid:132) El método de detección más común consiste

en emplear tiempos límiteo plazos

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

25

Condiciones de error
(cid:132) Mensajes alterados

(cid:132) es común el uso de códigos de verificación

de errores (paridad, etc...)

© José Miguel Santos Espino – Alexis Quesada Arencibia

ProgramaciónConcurrente

26

Ejercicio
(cid:132) Supongamos que partimos de un sistema de

comunicación mediante paso de mensaje
donde la comunicación es directa y sincrona:
(cid:132) enviar(A,mensaje)
(cid:132) recibir(B,mensaje)

(cid:132) Implementar el problema
  • Links de descarga
http://lwp-l.com/pdf9030

Comentarios de: Tema3. Paso de Mensajes (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad