I got some questions about semaphores.
here is a reader/writer algorithm.
Semaphore x =1, y=1,z=1,w=1,r=1;
int nread=0,nwrite=0;
Reader:
Code:
for(;;)
{
P(z); P(r); P(x);
if (++nread == 1)
P(w);
V(x); V(r); V(z);
READ
P(x);
if (--nread == 0)
V(w);
V(x);
}
Writer:
Code:
for(;;) {
P(y);
if (++nwrite == 1)
P(r);
V(y);
P(w);
WRITE
V(w);
P(y);
if (--nwrite == 0)
V(r);
V(y);
}
I dont understand why so many semaphores are needed. what if I take away sempaphore z and P(z) and V(z)? Will reader take precedence over writer?
[code][/code]tagged by Salem