program version_dos

var p1adentro, p2adentro: boolean;

procedure proceso_uno;

begin

while true do

begin

while p2adentro do

p1adentro := true;

seccion_critica_uno;

p1adentro :=false;

otras_tareas_uno

end

end;

procedure proceso_dos;

begin

while true do

begin

while p1adentro do;

p2adentro:=true;

seccion_critica_dos;

p2adentro:=false;

otras_tareas_dos

end

end

begin

p1adentro:=false;

p2adentro:=false;

parbegin

proceso_uno;

proceso_dos

parend

end.

Pagina Anterior