137
The Dining Philosophers Problem
nEach philosopher is a process
nOne semaphore per fork:
ufork: array[0..4] of semaphores
uInitialization: fork[i].count:=1 for i:=0..4
nA first attempt:
nDeadlock if each philosopher start by picking his left fork!
Process Pi:
repeat
 think;
 wait(fork[i]);
 wait(fork[i+1 mod 5]);
 eat;
 signal(fork[1+1 mod 5]);
 signal(fork[i]); 
forever