https://drive.google.com/file/d/13xHrTjd-WHlBGr9lizkmwrWPAESKu1s8/view
Modelos de Comunicación
- Comunicación
- Sincrónica
- Asincrónica - Buffer: no se bloquea, se van almacenando los mensajes.
- Direccionamiento ¿Cómo se determina a quién dirigir un mensaje?
- Simétrico: uno a uno
- Asimétrico: broadcast, multidifusión, etc
- Sin direccionamiento: matcheo por estructura del mensaje
- Flujo de datos
- Unidireccional
- Bidireccional
Canales
- Conectan un proceso emisor con un proceso receptor
- Tienen un nombre
- Son tipados
- Sincrónicos o asincrónicos
- Unidireccionales
Productores y Consumidores
Se puede resolver el problema de productores y consumidores utilizando un canal, en vez del buffer.
I: Integer
begin
loop
produce(I);
ch <= I; // introduzco I en el canal
end loop
end Producer
I: Integer
begin
loop
ch => I; // saco I del canal
Consume(I);
end loop
end Consumer
- La herramienta comunica y sincroniza.
- Bloquea al consumidor si no hay nada para consumir y bloquea al Productor si no hay espacio.
Selective Input
Es una sintaxis permitida por los lenguajes que soportan canales
- Permite escuchar en varios canales de forma bloqueante y desbloquearse con el primero que recibe un mensaje.
- Evita busy wait.