Mar 1, 2009

Explain and write the code for Concurrent Read, Exclusive Writer

Explain and write the code for Concurrent Read, Exclusive Writer
semaphore mutex=1,wrt=1;
int readcount=0;

reader process:
{{{
wait(mutex);
readcount++;
if(readcount==1)
wait(wrt);
signal(mutex);

reading is performed

wait(mutex);
readcount--;
if(readcount==0)
signal(wrt);
signal(mutex);
}}}

writer process:
{{{
wait(wrt)

writing is performed

signal(wrt);
}}}

At one time, one or more reader processes can share the data, but at one time only one writer can access the data. Mutex used to update the readcount, wrt used to implement exclusive accessing of writer
Wait() //increment
Signal() //decrement

No comments:

Post a Comment