View difference between Paste ID: yP17ATES and eEcVFisf
SHOW: | | - or go back to the newest paste.
1-
program FILO4;
1+
program intento3;
2
var s1:boolean;
3-
var p: array [0..4] of semaphore;
3+
	s2:boolean;
4
	
5-
	k : integer;
5+
process p1;
6
begin
7-
process type filosofopar (i:integer);
7+
8
	while s2=true do;
9
		s1:=true;
10-
	{piensa	}
10+
		
11-
	writeln('filosofo ',i,' piensa');
11+
		writeln('ingresando a la seccion critica p1');
12-
	wait(p[(i+1) mod 5]);
12+
		
13-
	wait(p[i]);	
13+
		s1:=false;
14-
	{come}
14+
15-
	writeln('filosofo ',i,' come');	
15+
16-
	signal(p[i]);
16+
17-
	signal(p[(i+1) mod 5]);
17+
process p2;
18-
	writeln('filosofo ',i,' piensa');
18+
19-
	Sleep(random(3));
19+
20
	while s1=true do;
21
		s2:=true;
22
	
23-
process type filosofoimpar (i:integer);
23+
		writeln('ingresando a la seccion critica p2');
24
		
25
		s2:=false;
26-
	{piensa	}
26+
27-
	writeln('filosofo ',i,' piensa');
27+
28-
	wait(p[(i+1) mod 5]);
28+
29-
	wait(p[i]);	
29+
30-
	{come}
30+
	s1:=false;
31-
	writeln('filosofo ',i,' come');	
31+
	s2:=false;
32-
	signal(p[i]);
32+
33-
	signal(p[(i+1) mod 5]);
33+
	cobegin
34-
	writeln('filosofo ',i,' piensa');
34+
	p1;
35-
	Sleep(random(3));
35+
	p2;
36
	coend
37
end.