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. |