program version_cuatro;

var p1deseaentrar, p2deseaentrar:boolean;

procedure proceso_uno;

begin

while cierto do

begin

p1deseaentrar:=true;

while p2deseaentrar do

begin

p1deseaentrar:=false;

retraso (aleatorio,algunosciclos);

p1deseaentrar:=true

end;

seccion_critica_uno;

p1deseaentrar:=false;

otras_tareas_uno

end

end;

procedure proceso_dos;

begin

while true do

begin

p2deseaentrar:=true;

while p1deseaentrar do

begin

p2deseaentrar:=false;

retraso (aleatorio,algunosciclos);

p2deseaentrar:=true

end;

seccion_critica_dos;

p2deseaentrar:=false;

otras_tareas_dos

end

end;

begin

p1deseaentrar:=false;

p2deseaentrar:=false;

parbegin

proceso_uno;

proceso_dos

parend

end.

Pagina Anterior