Professional Documents
Culture Documents
Synchronization
Observation
Incrementing and decrementing Count variable equal number of times simultaneously.
void* increment (void* ptr) void* decrement (void* ptr)
{ {
for(unsigned int i=0;i<500000;i++) for(unsigned int i=0;i<500000;i++)
count++; count--;
} }
Analysis
Counter++ Counter-- Order in which code actually
executes
AX counter BX counter AX counter
Inc ax Dec bx Inc ax
Counter ax Counter bx BX counter
Dec bx
Counter ax
Counter bx
Solution to Critical Section Problem
(Template)
Algorithm-1
turn = 0;
while(turn != 0); //entry section while(turn != 1); //entry section
//critical section
//critical section
flag[0]=false; flag[1]=false;
flag[0]=false; flag[1]=false;