Actualizado el 21 de Marzo del 2018 (Publicado el 23 de Febrero del 2018)
1.203 visualizaciones desde el 23 de Febrero del 2018
46,1 KB
8 paginas
Creado hace 19a (25/05/2004)
mensaje síncrono
mensaje
síncrono con
con
Tema 4. Paso de
Tema 4. Paso de
canales
canales
Paso de mensaje síncrono
Proceso A
Proceso B
Proceso A
Proceso B
send
receive
receive
send
© Alexis Quesada Arencibia
ProgramaciónConcurrente
2
Canales
(cid:132) Cada canal permite establecer un enlace
entre dos procesos
(cid:132) Permiten establecer relaciones de
comunicación uno a uno entre un único
emisor y un único receptor
(cid:132) Flujo de datos unidireccional punto a punto
(cid:132) Los canales suelen tener un tipo y los datos
que viajan por él deben ser de dicho tipo
© Alexis Quesada Arencibia
ProgramaciónConcurrente
3
Canales en Pascal-FC
(cid:132) Canal y los datos deben ser del mismo
tipo
(cid:132) Los canales son declarados mediante la
palabra reservada channel
© Alexis Quesada Arencibia
ProgramaciónConcurrente
4
Canales en Pascal-FC: ejemplo
program ejemplo
type mensaje=
record
end;
var
process P;
var
begin
end;
process Q;
var
begin
end;
begin
end.
(* estructura del mensaje *)
(* Declaración del canal, indicando el tipo de los datos que viajarán por él *)
ch: channel of mensaje;
s: mensaje;
...
(* Envía el mensaje sal canal ch*)
ch ! s;
...
r: mensaje;
...
(* Recibe un mensaje del canal chy lo almacena en r*)
ch ? r;
...
cobegin
coend
P;
Q
© Alexis Quesada Arencibia
ProgramaciónConcurrente
5
Canales en Pascal-FC
(cid:132) Canales especiales con el objetivo
exclusivo de sincronización: canales
síncronos
•var ch: channel of synchronous;
•ch ! any
•ch ? any
Envíar mensaje de sincronización al canal ch
Recibir mensaje de sincronización del canal ch
© Alexis Quesada Arencibia
ProgramaciónConcurrente
6
Sentencias select
(cid:132) Espera selectiva básica
(cid:132) Notación simplificada
(cid:132) Espera selectiva con guardas
(cid:132) Espera selectiva con la alternativa terminate
(cid:132) Espera selectiva con la alternativa else
(cid:132) Espera selectiva con la alternativa timeout
(cid:132) Espera selectiva con prioridad
© Alexis Quesada Arencibia
ProgramaciónConcurrente
7
Ejercicios
(cid:132) Resolver el problema de la exclusión
mutua en el acceso a variables
compartidas entre diferentes procesos
según el modelo de comunicación de
canales de Pascal-FC
(cid:132) Problemas clásicos
© Alexis Quesada Arencibia
ProgramaciónConcurrente
8
Comentarios de: Tema 4 - Paso de Mensaje Síncrono con Canales (0)
No hay comentarios