Tema 6
Contenido
• Introducción
• Mecanismos de paso de mensajes
• Paso de mensaje asíncrono
PROGRAMACIÓN CONCURRENTE – TEMA 6
• Paso de mensaje síncrono con canales
Paso de Mensajessíncrono
con canales
ESCUELA TÉCNICA SUPERIOR DE
INGENIERÍA INFORMÁTICA
• Invocación remota
DEPARTAMENTO DE CIENCIAS
DE LA COMPUTACIÓN
2
PASO DE MENSAJES SÍNCRONO CON CANALES
PASO DE MENSAJESSÍNCRONO CON CANALES
Comunicación síncrona
Canales
• Un canal establece un enlace entre dos procesos. Las
operaciones de envío y recepción especifican el canal al que se
envía o del que se recibe.
• Send yreceive bloqueantes
proceso 1
proceso 2
receive
send
2
• El canal suele tener un tipo y coincide con el tipo de datos que
se pueden enviar a través del canal.
Se recibe el mensaje
proceso 1
•Los procesos hacen el envío y la recepción de mensajes a
través de ese canal.
proceso 2
• Send y receive son bloqueantes y el primer proceso que
realice la operación se queda bloqueado esperando alotro.
send
Se entrega el mensaje
receive
• Comunicación: 1 a 1 unidireccional
• ¿Directa o indirecta?
3
4
PASO DE MENSAJES SÍNCRONO CON CANALES
PASO DE MENSAJES SÍNCRONO CON CANALES
PMsíncrono con canales en Java
Paso síncrono de mensajes en Java
public class Canal {
• No existe el concepto de canal
boolean vacio = true;
• Se puede simular definiendo una clase Canal (Channel)
Objectcanal = null;
• Comunicación 1 a 1
public synchronized void send (Object o) {
• Capacidad del canal : 0
canal = o;
• Unidireccional
notify(); //desbloquear al receptor si esta bloqueado
while(canal != null)
try {wait();}
catch (Exception e){}
}
5
6
PASO DE MENSAJES SÍNCRONO CON CANALES
PASO DE MENSAJES SÍNCRONO CON CANALES
Paso síncrono de mensajes en Java
PM síncrono con canales enJava
public synchronized Object receive () {
• Esta versión no permite hacer lectura selectiva del canal.
Object temp = null;
• Vamos a utilizar las clases de la librería messagepassing
Channel....
Regístrate para leer el documento completo.