Multiple choice

A shared variable x, initialised to zero, is operated on by four concurrent processes W, X, Y and 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 initialised to two. What is the maximum possible value of x after all processes complete execution?

  1. –2

  2. –1

  3. 1

  4. 2

Reveal answer Fill a bubble to check yourself
D Correct answer
Explanation