Q. 34 A shared variable x , initialized to zero, is operated on by four concurrent processes
W, X, Y , Z as follows. Each of the processes W and X reads x from memory,
increments by one, stores it to memory, and then terminates. Each of the processes
Y and Z reads x from memory, decrements by two, stores it to memory, and
then terminates. Each process before reading x invokes the P operation (i.e.,
wait) on a counting semaphore S and invokes the V operation (i.e., signal) on the
semaphore S after storing x to memory. Semaphore S is initialized to two. What
is the maximum possible value of x after all processes complete execution?
(A) –2
(B) –1
(C) 1
(D) 2
Answer: (D)
Explanation: