X-Git-Url: https://git.piment-noir.org/?p=TD_SE.git;a=blobdiff_plain;f=peterson%2Fpeterson.c;fp=peterson%2Fpeterson.c;h=f588503e5bb66e64d403f0d6eedb0d93492de320;hp=0000000000000000000000000000000000000000;hb=155664dba1b537176fb66d28ab4412d1853a195d;hpb=dfdf4860c5feca46d1647bf602e8701db1660216 diff --git a/peterson/peterson.c b/peterson/peterson.c new file mode 100644 index 0000000..f588503 --- /dev/null +++ b/peterson/peterson.c @@ -0,0 +1,23 @@ +#define FALSE 0 +#define TRUE 1 +#define N 2 // nombre de processus +int turn; // à qui le tour? +int flags[N]; // initialement valeurs FALSE + +/* attente active */ + +static void enter_region(int process) { // entrée en SC + int other; + other = 1 - process; + flags[process] = TRUE; + turn = process; + while (turn == process && flags[other] == TRUE) ; +} + +static void leave_region(int process) { // sortie de SC + flags[process] = FALSE; +} + +int main() { + +}