SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
1
Sistemas Distribuidos
Paso de mensajes
René Guamán-Quinche
Facultad de la Energía, las Industrias y los Recursos Naturales No Renovables
Carrera de Ingeniería en Sistemas/Computación
Mayo, 2021
Loja, Ecuador
3
1. Modalidades de Envío / Recepción
2. Finalización de operación
3. Selección de mensajes
4. Problema: Serialización
5. Comunicación colectiva
Contenido
4
Modelo de Comunicación

Mecanismos para que los procesos se comuniquen y sincronicen sus
acciones

Sistemas de mensajes

Los procesos se comunican entre sin recurrir a variables compartidas

Se proporcionan dos operaciones

Send: enviar mensajes

Receive: recibir mensajes

El tamaño del mensaje es fijo o variable
5
Modelo de Comunicación
6
Modelo de Comunicación
7
Modalidades de envío / recepción
Dos formas: envío con buffer / envío síncrono
envío síncrono

El síncrono es el envío normal

Hasta que el receptor no haga el recieve el send se queda bloqueado

Es decir hay una sincronización y por tanto hay una espera
8
Modalidades de envío / recepción
Envío con buffer

Va a tener un buffer del usuario va tener un buffer auxiliar, donde va a tener una copia del msj

El send no envía directamente, sino se hace una copia del mensaje a este buffer intermedio y el
envío se lo hace desde este buffer temporal

El send con buffer finaliza cuando el mensaje se ha copiado de memoria del programa a un
buffer del sistema

El send síncrono no finaliza hasta que se inicia el recv correspondiente a otro proceso

Ventaja: la operación send puede completarse antes de que el otro proceso haga el recieve, por
lo tanto la sincronización no hace falta
Buffer: región de memoria que va a contener el mensaje que se tiene que enviar
Cuando hacemos un send, el usuario tiene que proporcionar un buffer, que normalmente da un
puntero al inicio de la región de memoria más la longitud que ocupa el mensaje
9
Modalidades de envío / recepción
Operaciones bloqueantes / no bloqueantes – si las primitivas se bloquean o no
Lo normal es que se bloqueen → send bloqueante se espera a que el otro proceso haga el receive
o bien en el caso del envío con buffer se espera que haga la copia del msj ...
Al finalizar la llamada send bloqueante es seguro modificar el buffer de envío
Al finalizar la llamada a recv bloqueante se garantiza que cuando se a terminado la operación, el
buffer de recepción ya contiene el mensaje
Las operaciones no bloqueantes hacer retornar enseguida y por tanto no se está seguro si en
receive a llegado o no,
El programador es el encargado de asegurarse si se a completado la operación o no
10
Modalidades de envío / recepción
Síncrona (bloqueante)
11
Finalización de operación
Operaciones no bloqueantes hay que poder determinar la finalización

En el recv para poder leer el mensaje

En el send para poder sobreescribir la variable que enviado
El send y recv no bloqueantes nos dan un numero de operación req
Primitivas:

wait (req) se bloquea hasta que ha terminado la operación req

Test (req) indica si finalizó o no

waitany y waitall cuando hay varias operaciones pendientes
Se puede usar para solapar comunicación y cálculo
12
Selección de mensajes
Cuándo hay muchos mensajes que se intercambian entre procesos, qué pasa cuando un proceso
revice mensajes de varios proceso
La operación recv requiere un identificador de proceso id

No concluye hasta que llega un mensaje de id

Se ignora los mensajes procedentes de otros procesos
MPI: es más flexible, permite recibir de cualquier proceso
Además, se usa la etiqueta (tag) para distinguir entre mensajes

También permite comodín para indicar cualquier etiqueta
Ejemplo: recv(z, any_src, any_tag, status) aceptará el primer mensaje que entre

La primitiva recv tiene un argumento status donde aparece el emisor y la etiqueta

Los mensajes no seleccionados no se pierden, quedan en una “cola de mensajes”
13
Problema: interbloqueo
El mal uso de send y recv puede producir un interbloqueo
Caso de comunicación síncrona
Ambos quedan bloqueados en el envío
Caso de comunicación con buffer

En el caso anterior no causaría interbloqueo

Puede haber otras situaciones con interbloqueo
Posible solución: intercambiar el orden de uno de ellos
/*proceso 0 */
Send (x, 1);
Recv (y, 1)
/*proceso 1 */
Send (y, 0);
Recv (x, 0)
/*proceso 0 */
Send (x, 1);
Recv (y, 1)
/*proceso 1 */
Send (y, 0);
Recv (x, 0)
14
Problema: Serialización
Cada proceso tiene que enviar un dato a su vecino de la deracha

Posibles soluciones

Protocolos pares-impares: los procesos pares hacen una variante, los impares la otra no

Send o recv no bloqueante

Operaciones especiales combinadas: sendrecv
Posible solución: intercambiar el orden de uno de ellos
15
Comunicación colectiva
Las operaciones colectivas involucran todos los procesos de un comunicador (en muchos casos,
uno de ellos tiene un papel destacado – proceso raíz)

Sincronización (barrier): cada proceso espera a que todos lleguen

Movimiento de datos: uno o varios envían a uno o varios

Reducciones: Además de comunicar se realiza un cálculo sobre los datos
Estas operaciones pueden realizarse con comunicación punto a punto, pero es recomendable usar
las primitivas correspondientes

Existen varios algoritmos para cada caso (linea, árbol)

La solución óptima suele depender de la arquitectura (topología de red)
16
Comunicación colectiva - tipos
Difusión uno a todos

Todos reciben lo que tiene el proceso raíz
Reducción de todos a uno

Operación dual a la difusión

Los datos se combinan mediante un operador asociativo
Reparto (scatter)

La raíz envía un mensaje individualizado a cada uno
Recogida o concatenación (gather)

Operación dual al reparto

Similar a la reducción pero sin operar
Difusión todos a todos

P difisiones simultáneas, con proceso raíz distinto

Al final, todos almacenan todos los datos
Reducción todos a todos

Operación dual a la difución todos a todos
17
Cŕeditos
• Transparencias basadas por:
• Coulouris Dollimore, Distributed Systems: Concepts and Design
https://ce.guilan.ac.ir/images/other/soft/distribdystems.pdf
• García-Carballeira F., Tema 3 Comunicación y sincronización entre
procesos
http://ocw.uc3m.es/ingenieria-informatica/sistemas-distribuidos-2013/
Tema3_ComunicacionYsincronizacion.pdf/view
• Sanabria, John, Sistemas Distribuidos – Hilos – Prácticas,
https://www.youtube.com/playlist?list=PLNqsgMwXL3mFmd8X8Fg
vZ_6ljjzucIDbN
Networking académico:
Correo electrónico: rguaman@unl.edu.ec
Twitter: @rene5254
SlideShare: https://es.slideshare.net/rene5254
18
Gracias

Más contenido relacionado

La actualidad más candente

Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.Carlos Solano
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socketRene Guaman-Quinche
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacionyamy matin
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidosMargarita Labastida
 
Introduccion a los sistemas distribuidos
Introduccion a los sistemas distribuidosIntroduccion a los sistemas distribuidos
Introduccion a los sistemas distribuidosRene Guaman-Quinche
 
1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capasEsbeyiz
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salidaitzayana bacilio
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosCarolina Cols
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre Juan Anaya
 
Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativoIan Berzeker Tovar
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionEduardo J Onofre
 
Que es conmutacion
Que es conmutacionQue es conmutacion
Que es conmutacionEROM86
 
Capa de enlace de datos
Capa de enlace de datosCapa de enlace de datos
Capa de enlace de datosJorge Arroyo
 

La actualidad más candente (20)

Cuadro comparativo hilos
Cuadro comparativo hilosCuadro comparativo hilos
Cuadro comparativo hilos
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socket
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
 
Protocolo de Enrutamiento IGRP
Protocolo de Enrutamiento IGRPProtocolo de Enrutamiento IGRP
Protocolo de Enrutamiento IGRP
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
 
Introduccion a los sistemas distribuidos
Introduccion a los sistemas distribuidosIntroduccion a los sistemas distribuidos
Introduccion a los sistemas distribuidos
 
1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Conceptos de software
Conceptos de softwareConceptos de software
Conceptos de software
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativos
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Examen final de redes
Examen final de redesExamen final de redes
Examen final de redes
 
Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativo
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacion
 
Arquitectura del computador clusters
Arquitectura del computador   clustersArquitectura del computador   clusters
Arquitectura del computador clusters
 
Que es conmutacion
Que es conmutacionQue es conmutacion
Que es conmutacion
 
Capa de enlace de datos
Capa de enlace de datosCapa de enlace de datos
Capa de enlace de datos
 

Similar a Modelo paso de mensajes

Gprocesos
GprocesosGprocesos
Gprocesosdaniela
 
Paso mensajes
Paso mensajesPaso mensajes
Paso mensajesadiaz7703
 
Tolerancia A Fallos
Tolerancia A FallosTolerancia A Fallos
Tolerancia A Fallosdabiddo
 
CAPA DE TRANSPORTE.pptx
CAPA DE TRANSPORTE.pptxCAPA DE TRANSPORTE.pptx
CAPA DE TRANSPORTE.pptxjuan gonzalez
 
Servicio de un sistema operativo.pptx
Servicio de un sistema operativo.pptxServicio de un sistema operativo.pptx
Servicio de un sistema operativo.pptxSergioMenndez6
 
Sistemas Distribuidos
Sistemas  DistribuidosSistemas  Distribuidos
Sistemas Distribuidossantiago
 
Protocolos y servicios informaticos
Protocolos y servicios informaticosProtocolos y servicios informaticos
Protocolos y servicios informaticosAlonso Almaraz
 
Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesosPablo Hurtado
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporteFer Gilces
 
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptxSISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptxAdolfoEuan2
 
Capa de transporte nivel enrutamiento - pat - nat
Capa de transporte   nivel enrutamiento - pat - natCapa de transporte   nivel enrutamiento - pat - nat
Capa de transporte nivel enrutamiento - pat - natJairo Quiroz Cabanillas
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos Cristhian Rosales
 
Protocolos y servicios informáticos
Protocolos y servicios informáticosProtocolos y servicios informáticos
Protocolos y servicios informáticosalepeor
 
Sistema operativo de tiempo real
Sistema operativo de tiempo realSistema operativo de tiempo real
Sistema operativo de tiempo realalexander20107024
 
Sistema operativo de tiempo real
Sistema operativo de tiempo realSistema operativo de tiempo real
Sistema operativo de tiempo realalexander20107024
 

Similar a Modelo paso de mensajes (20)

s.o.
s.o.s.o.
s.o.
 
Mensajería (Informática)
Mensajería (Informática)Mensajería (Informática)
Mensajería (Informática)
 
Gprocesos
GprocesosGprocesos
Gprocesos
 
Paso mensajes
Paso mensajesPaso mensajes
Paso mensajes
 
Tolerancia A Fallos
Tolerancia A FallosTolerancia A Fallos
Tolerancia A Fallos
 
CAPA DE TRANSPORTE.pptx
CAPA DE TRANSPORTE.pptxCAPA DE TRANSPORTE.pptx
CAPA DE TRANSPORTE.pptx
 
Exposicion
ExposicionExposicion
Exposicion
 
Servicio de un sistema operativo.pptx
Servicio de un sistema operativo.pptxServicio de un sistema operativo.pptx
Servicio de un sistema operativo.pptx
 
Sistemas Distribuidos
Sistemas  DistribuidosSistemas  Distribuidos
Sistemas Distribuidos
 
Protocolos y servicios informaticos
Protocolos y servicios informaticosProtocolos y servicios informaticos
Protocolos y servicios informaticos
 
Tema iv comunicación entre procesos
Tema iv comunicación entre procesosTema iv comunicación entre procesos
Tema iv comunicación entre procesos
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptxSISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
SISTEMAS DISTRIBUIDOS COMUNICACION UNIDAD 2.pptx
 
Capa de transporte nivel enrutamiento - pat - nat
Capa de transporte   nivel enrutamiento - pat - natCapa de transporte   nivel enrutamiento - pat - nat
Capa de transporte nivel enrutamiento - pat - nat
 
Capa de enlace de datos
Capa de enlace de datosCapa de enlace de datos
Capa de enlace de datos
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos
 
Protocolos y servicios informáticos
Protocolos y servicios informáticosProtocolos y servicios informáticos
Protocolos y servicios informáticos
 
Bd nosql tecnicas III
Bd nosql tecnicas IIIBd nosql tecnicas III
Bd nosql tecnicas III
 
Sistema operativo de tiempo real
Sistema operativo de tiempo realSistema operativo de tiempo real
Sistema operativo de tiempo real
 
Sistema operativo de tiempo real
Sistema operativo de tiempo realSistema operativo de tiempo real
Sistema operativo de tiempo real
 

Más de Rene Guaman-Quinche

Paradigma Programación Orientada a Objetos
Paradigma Programación Orientada a ObjetosParadigma Programación Orientada a Objetos
Paradigma Programación Orientada a ObjetosRene Guaman-Quinche
 
Fundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdfFundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdfRene Guaman-Quinche
 
Arquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdfArquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdfRene Guaman-Quinche
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de SoftwareRene Guaman-Quinche
 
Sistema de Archivos Distribuidos
Sistema de Archivos DistribuidosSistema de Archivos Distribuidos
Sistema de Archivos DistribuidosRene Guaman-Quinche
 
Unidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetosUnidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetosRene Guaman-Quinche
 
Tiempo, causalidad y estado global
Tiempo, causalidad y estado globalTiempo, causalidad y estado global
Tiempo, causalidad y estado globalRene Guaman-Quinche
 
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente TeorìaTiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente TeorìaRene Guaman-Quinche
 
Tiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente TransparenciasTiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente TransparenciasRene Guaman-Quinche
 
Introduccion a la computación paralela
Introduccion a la computación paralelaIntroduccion a la computación paralela
Introduccion a la computación paralelaRene Guaman-Quinche
 

Más de Rene Guaman-Quinche (20)

interfaces.pdf
interfaces.pdfinterfaces.pdf
interfaces.pdf
 
Paradigma Programación Orientada a Objetos
Paradigma Programación Orientada a ObjetosParadigma Programación Orientada a Objetos
Paradigma Programación Orientada a Objetos
 
Fundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdfFundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdf
 
replicacion heterogenea.pdf
replicacion heterogenea.pdfreplicacion heterogenea.pdf
replicacion heterogenea.pdf
 
Elicitación de requerimientos
Elicitación de requerimientosElicitación de requerimientos
Elicitación de requerimientos
 
Arquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdfArquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdf
 
Diagramas componentes
Diagramas componentesDiagramas componentes
Diagramas componentes
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuencia
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de Software
 
Sistema de Archivos Distribuidos
Sistema de Archivos DistribuidosSistema de Archivos Distribuidos
Sistema de Archivos Distribuidos
 
Unidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetosUnidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetos
 
Tiempo, causalidad y estado global
Tiempo, causalidad y estado globalTiempo, causalidad y estado global
Tiempo, causalidad y estado global
 
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente TeorìaTiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
 
Tiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente TransparenciasTiempo, causalidad y estado global Alberto Lafuente Transparencias
Tiempo, causalidad y estado global Alberto Lafuente Transparencias
 
Ciclo de vida software
Ciclo de vida softwareCiclo de vida software
Ciclo de vida software
 
Requisitos no Funcionales
Requisitos no FuncionalesRequisitos no Funcionales
Requisitos no Funcionales
 
Requisitos funcionales
Requisitos funcionalesRequisitos funcionales
Requisitos funcionales
 
Caracterizacion del paralelismo
Caracterizacion del paralelismoCaracterizacion del paralelismo
Caracterizacion del paralelismo
 
Introduccion a la computación paralela
Introduccion a la computación paralelaIntroduccion a la computación paralela
Introduccion a la computación paralela
 
Diagramas de actividades
Diagramas de actividadesDiagramas de actividades
Diagramas de actividades
 

Modelo paso de mensajes

  • 1. 1
  • 2. Sistemas Distribuidos Paso de mensajes René Guamán-Quinche Facultad de la Energía, las Industrias y los Recursos Naturales No Renovables Carrera de Ingeniería en Sistemas/Computación Mayo, 2021 Loja, Ecuador
  • 3. 3 1. Modalidades de Envío / Recepción 2. Finalización de operación 3. Selección de mensajes 4. Problema: Serialización 5. Comunicación colectiva Contenido
  • 4. 4 Modelo de Comunicación  Mecanismos para que los procesos se comuniquen y sincronicen sus acciones  Sistemas de mensajes  Los procesos se comunican entre sin recurrir a variables compartidas  Se proporcionan dos operaciones  Send: enviar mensajes  Receive: recibir mensajes  El tamaño del mensaje es fijo o variable
  • 7. 7 Modalidades de envío / recepción Dos formas: envío con buffer / envío síncrono envío síncrono  El síncrono es el envío normal  Hasta que el receptor no haga el recieve el send se queda bloqueado  Es decir hay una sincronización y por tanto hay una espera
  • 8. 8 Modalidades de envío / recepción Envío con buffer  Va a tener un buffer del usuario va tener un buffer auxiliar, donde va a tener una copia del msj  El send no envía directamente, sino se hace una copia del mensaje a este buffer intermedio y el envío se lo hace desde este buffer temporal  El send con buffer finaliza cuando el mensaje se ha copiado de memoria del programa a un buffer del sistema  El send síncrono no finaliza hasta que se inicia el recv correspondiente a otro proceso  Ventaja: la operación send puede completarse antes de que el otro proceso haga el recieve, por lo tanto la sincronización no hace falta Buffer: región de memoria que va a contener el mensaje que se tiene que enviar Cuando hacemos un send, el usuario tiene que proporcionar un buffer, que normalmente da un puntero al inicio de la región de memoria más la longitud que ocupa el mensaje
  • 9. 9 Modalidades de envío / recepción Operaciones bloqueantes / no bloqueantes – si las primitivas se bloquean o no Lo normal es que se bloqueen → send bloqueante se espera a que el otro proceso haga el receive o bien en el caso del envío con buffer se espera que haga la copia del msj ... Al finalizar la llamada send bloqueante es seguro modificar el buffer de envío Al finalizar la llamada a recv bloqueante se garantiza que cuando se a terminado la operación, el buffer de recepción ya contiene el mensaje Las operaciones no bloqueantes hacer retornar enseguida y por tanto no se está seguro si en receive a llegado o no, El programador es el encargado de asegurarse si se a completado la operación o no
  • 10. 10 Modalidades de envío / recepción Síncrona (bloqueante)
  • 11. 11 Finalización de operación Operaciones no bloqueantes hay que poder determinar la finalización  En el recv para poder leer el mensaje  En el send para poder sobreescribir la variable que enviado El send y recv no bloqueantes nos dan un numero de operación req Primitivas:  wait (req) se bloquea hasta que ha terminado la operación req  Test (req) indica si finalizó o no  waitany y waitall cuando hay varias operaciones pendientes Se puede usar para solapar comunicación y cálculo
  • 12. 12 Selección de mensajes Cuándo hay muchos mensajes que se intercambian entre procesos, qué pasa cuando un proceso revice mensajes de varios proceso La operación recv requiere un identificador de proceso id  No concluye hasta que llega un mensaje de id  Se ignora los mensajes procedentes de otros procesos MPI: es más flexible, permite recibir de cualquier proceso Además, se usa la etiqueta (tag) para distinguir entre mensajes  También permite comodín para indicar cualquier etiqueta Ejemplo: recv(z, any_src, any_tag, status) aceptará el primer mensaje que entre  La primitiva recv tiene un argumento status donde aparece el emisor y la etiqueta  Los mensajes no seleccionados no se pierden, quedan en una “cola de mensajes”
  • 13. 13 Problema: interbloqueo El mal uso de send y recv puede producir un interbloqueo Caso de comunicación síncrona Ambos quedan bloqueados en el envío Caso de comunicación con buffer  En el caso anterior no causaría interbloqueo  Puede haber otras situaciones con interbloqueo Posible solución: intercambiar el orden de uno de ellos /*proceso 0 */ Send (x, 1); Recv (y, 1) /*proceso 1 */ Send (y, 0); Recv (x, 0) /*proceso 0 */ Send (x, 1); Recv (y, 1) /*proceso 1 */ Send (y, 0); Recv (x, 0)
  • 14. 14 Problema: Serialización Cada proceso tiene que enviar un dato a su vecino de la deracha  Posibles soluciones  Protocolos pares-impares: los procesos pares hacen una variante, los impares la otra no  Send o recv no bloqueante  Operaciones especiales combinadas: sendrecv Posible solución: intercambiar el orden de uno de ellos
  • 15. 15 Comunicación colectiva Las operaciones colectivas involucran todos los procesos de un comunicador (en muchos casos, uno de ellos tiene un papel destacado – proceso raíz)  Sincronización (barrier): cada proceso espera a que todos lleguen  Movimiento de datos: uno o varios envían a uno o varios  Reducciones: Además de comunicar se realiza un cálculo sobre los datos Estas operaciones pueden realizarse con comunicación punto a punto, pero es recomendable usar las primitivas correspondientes  Existen varios algoritmos para cada caso (linea, árbol)  La solución óptima suele depender de la arquitectura (topología de red)
  • 16. 16 Comunicación colectiva - tipos Difusión uno a todos  Todos reciben lo que tiene el proceso raíz Reducción de todos a uno  Operación dual a la difusión  Los datos se combinan mediante un operador asociativo Reparto (scatter)  La raíz envía un mensaje individualizado a cada uno Recogida o concatenación (gather)  Operación dual al reparto  Similar a la reducción pero sin operar Difusión todos a todos  P difisiones simultáneas, con proceso raíz distinto  Al final, todos almacenan todos los datos Reducción todos a todos  Operación dual a la difución todos a todos
  • 17. 17 Cŕeditos • Transparencias basadas por: • Coulouris Dollimore, Distributed Systems: Concepts and Design https://ce.guilan.ac.ir/images/other/soft/distribdystems.pdf • García-Carballeira F., Tema 3 Comunicación y sincronización entre procesos http://ocw.uc3m.es/ingenieria-informatica/sistemas-distribuidos-2013/ Tema3_ComunicacionYsincronizacion.pdf/view • Sanabria, John, Sistemas Distribuidos – Hilos – Prácticas, https://www.youtube.com/playlist?list=PLNqsgMwXL3mFmd8X8Fg vZ_6ljjzucIDbN
  • 18. Networking académico: Correo electrónico: rguaman@unl.edu.ec Twitter: @rene5254 SlideShare: https://es.slideshare.net/rene5254 18 Gracias