ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Problema del Jardín Ornamental


Enviado por   •  2 de Diciembre de 2022  •  Trabajo  •  274 Palabras (2 Páginas)  •  53 Visitas

Página 1 de 2

[pic 1][pic 2]

Problema del Jardín Ornamental:[pic 3]

Tenemos un bonito jardín que está abierto al público que debe paga una entrada para disfrutar de él. La entrada es controlada por dos tornos, los gerentes del jardín desean que en cada momento puedan saber cuántas

personas hay dentro.

Queremos hacer una sencilla simulación de su funcionamiento:

  • Cada Torno será manejado por un proceso separado en el programa.
  • Los procesos de los tornos se ejecutarán concurrentemente.
  • Usamos una variable global para contar el número actual de visitantes.
  • Simulamos que entran 20 por cada torno y mostramos el resultado.

  1. Sin exclusión mutua.

program  EjercicioJardin;

process  type  Puerta(var  tot:integer);

var i:integer;

begin

for i:=1 to 20 do

tot:=tot+1;

end;

begin

end.


var P1,P2:Puerta;

total:integer; total:=0;

cobegin

p1(total);p2(total); coend; write('Total:',total);

[pic 4][pic 5]

[pic 6]

  1. Con exclusión mutua.

program EjercicioJardinDekker;

type

tControl=record

control1,control2: boolean; turno:integer;

var


end;

total:integer; Con:tControl;

process Puerta1 (var p: tControl; var tot:integer);

var i:integer;

begin

for i:=1 to 20 do begin

p.control1:=true;

while  p.control2  do

if p.turno <> 1 then begin

end; tot:=tot+1;


p.control1:=false; while p.turno <> 1 do; p.control1:=true;

end;


end;


wpr.ictoen(tr'oPl11:='fa)l;se; p.turno:=2;

process Puerta2 (var p: tControl; var tot:integer);

var i:integer;

begin

for i:=1 to 20 do begin

p.control2:=true;

while  p.control1  do

if p.turno <> 2 then begin

end; tot:=tot+1;


p.control2:=false; while p.turno <> 2 do; p.control2:=true;

end; begin


end;

total:=0;


write('P2        '); p.control2:=false; p.turno:=1;

end.


Con.control1:=false; Con.control2:=false; Con.turno:=1; cobegin

Puerta1(Con,total); Puerta2(Con,total);

coend;

write('Total:',total);

[pic 7][pic 8]

...

Descargar como (para miembros actualizados) txt (4 Kb) pdf (90 Kb) docx (792 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com