◆Shared Variables:
int turn;
initially turn = 0;
boolean flag[2];
initially flag[0] = flag[1] = false.
◆flag[i]=ture --> Pi ready to enter its critical section
◆turn = i --> Pi can enter its critical section
Process Pi
do{
flag[i] = true;
turn = j;
while(flag[j] && trun ==j)
;
critical section
flag[i] = false;
remainder section
}while(1);