Actualizado el 21 de Marzo del 2018 (Publicado el 23 de Febrero del 2018)
896 visualizaciones desde el 23 de Febrero del 2018
38,8 KB
2 paginas
Creado hace 20a (25/05/2004)
Tema 4. Paso de
Tema 4. Paso de
mensaje síncrono
mensaje
síncrono con
con
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
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
3
© Alexis Quesada Arencibia
ProgramaciónConcurrente
4
Canales en Pascal-FC: ejemplo
program ejemplo
type mensaje=
record
end;
(* estructura del mensaje *)
var
process P;
var
begin
end;
process Q;
var
begin
end;
begin
end.
(* 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
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
5
© Alexis Quesada Arencibia
ProgramaciónConcurrente
6
1
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
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
7
© Alexis Quesada Arencibia
ProgramaciónConcurrente
8
2
Comentarios de: Tema 4 - Paso de Mensaje Síncrono con Canales (0)
No hay comentarios