Comunicacion Procesos
• Presentar los diferentes esquemas para comunicar procesos en sistemas distribuidos: – Servicios básicos de comunicación (colas de mensajes POSIX, mailslots de Win32, sockets) – Llamadas a procedimientos remotos – Entornos orientados a objetos (CORBA, DCOM, RMI). • Presentar el concepto de cliente-servidor • Comunicación de grupos. • Comunicación de procesos en aplicacionesparalelas (MPI)
Comunicación de procesos en sistemas distribuidos
Sistemas Distribuidos
1
Félix García Carballeira (1999)
Contenido
• • • • • • • Mecanismos básicos de comunicación entre procesos Modelo cliente/servidor y comunicación en grupos Colas de mensajes POSIX y Mailslots de Win32 Sockets en Unix y Java Llamadas a procedimientos remotos (RPC) Entornos orientados a objetos.CORBA, RMI Comunicación en aplicaciones paralelas. MPI
Mecanismos de comunicación entre procesos
• Ficheros • Tuberías – Sin nombre: pipes – Con nombre: FIFOs • Memoria Compartida – Espacio del sistema operativo – Espacio compartido entre los procesos (threads) • Paso de mensajes
Sistemas Distribuidos
2
Félix García Carballeira (1999)
Sistemas Distribuidos
3
Félix GarcíaCarballeira (1999)
Comunicación en sistemas distribuidos
• La comunicación de procesos es fundamental en cualquier sistema distribuido • Existen diferentes posibilidades todas ellas basadas en el paso de mensajes – Mecanismos de bajo nivel, el programador debe preocuparse de establecer los protocolos de comunicación, representación de datos, etc.
• Colas de mensajes • Sockets
Paso de mensajes:conceptos básicos
• Primitivas básicas – send(destino, mensaje) – receive(origen, mensaje) • Tamaño del mensaje – Longitud fija o variable • Flujo de datos – Bidireccional, unidireccional • Nombrado – Comunicación directa
• send(P, m): envía un mensaje m al proceso P • receive(Q, m): recibe un mensaje del proceso Q • receive (ANY, m): recibe un mensaje de cualquiera
– Mecanismo de alto nivel,ofrecen abstracciones donde el programador no debe preocuparse de establecer protocolos
• Llamadas a procedimientos remotos • Invocación de métodos remotos (entornos orientados a objetos)
Sistemas Distribuidos 4 Félix García Carballeira (1999)
Sistemas Distribuidos
5
Félix García Carballeira (1999)
Conceptos básicos
• Nombrado – Comunicación indirecta: los datos se envían aestructuras intermedias
• Puertos: se asocian a un proceso (un único receptor)
– Ejemplo: sockets
Patrones típicos de comunicación
• Comunicación cliente-servidor – Transmisión de datos y código • Comunicación de grupos – Útil en servicios replicados
• Colas de mensajes: múltiples emisores y receptores
– Ejemplo: Colas de mensajes POSIX
• Tipos de comunicación – Síncrona o asíncrona •Capacidad de almacenamiento (buffering) • Fiabilidad – Fiables o no fiables • Representación de datos, aplanamiento
Sistemas Distribuidos 6 Félix García Carballeira (1999) Sistemas Distribuidos 7 Félix García Carballeira (1999)
Comunicación cliente-sevidor
• Muy utilizada en entornos distribuidos (más del 90% de los sistemas distribuidos utilizan la arquitectura cliente-servidor)
Máquina A clienteNÚCLEO respuesta petcición Máquina B servidor NÚCLEO RED
Comunicación de grupos
• Utiliza mensajes multicast • Útil para: – Ofrecer tolerancia a fallos basado en servicios replicados – Localizar objetos en sistemas distribuidos – Mejor rendimiento mediante datos replicados – Actualizaciones múltiples – Operaciones colectivas en cálculo paralelo
• Protocolo típico: petición-respuestaSistemas Distribuidos 8 Félix García Carballeira (1999) Sistemas Distribuidos 9 Félix García Carballeira (1999)
Tuberías en POSIX (pipes, FIFOS)
• Mecanismo de comunicación y sincronización • Servicios POSIX – Creación de pipes
• int pipe(int fildes[2]);
Tuberías en POSIX
• Semántica de las lecturas (read(fd[0], buf, n)) – Si la tubería está vacía ⇒ se bloquea al lector – Si la tubería tiene...
Regístrate para leer el documento completo.