Tema 5. Invocación Remota

Anuncio
Tema 5. Invocación
Remota
Invocación Remota
Proceso A Proceso B
Proceso A Proceso B
accept pe
B.pe
accept pe
begin
B.pe
...
end;
© Alexis Quesada Arencibia
begin
...
end
ProgramaciónConcurrente
2
Invocación Remota
process A;
(* se declara un punto de entrada pe*)
entry pe(a:integer; var b:integer);
begin
…
accept pe(a:integer; var b:integer) do
begin
b:=a
end;
…
end;
process B;
var
cont: integer;
begin
(* llamada al punto de entrada pe del proceso A
*)
A.pe(3,cont)
end;
© Alexis Quesada Arencibia
ProgramaciónConcurrente
3
Sentencias select
„
Espera selectiva básica
„
La única diferencia respecto a la espera selectiva estudiada
es que dentro de la sentencia select sólo se permiten
sentencias accept (no se permiten llamadas a puntos de
entrada como alternativas)
„
Espera selectiva con guardas
„
Espera selectiva con la alternativa terminate
„
Espera selectiva con la alternativa else
„
Espera selectiva con la alternativa timeout
© Alexis Quesada Arencibia
ProgramaciónConcurrente
4
Sentencias select
ESPERA SELECTIVA BÁSICA
select
accept pe1(a:integer;var b integer) do
begin
(* sentencias *)
end;
(* más sentencias *)
or
accept pe2(a:integer) do
begin
(* sentencias *)
end;
(* más sentencias *)
or
…
or
accept peN(a: character) do
begin
(* sentencias *)
end;
(* más sentencias *)
end
© Alexis Quesada Arencibia
ProgramaciónConcurrente
5
Ejercicios
„
„
Resolver el problema de la exclusión
mutua en el acceso a variables
compartidas entre diferentes procesos
mediante Invocación Remota
Problemas clásicos
© Alexis Quesada Arencibia
ProgramaciónConcurrente
6
Descargar