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