Please Register To Attempt Complete Test

Create Account

**
A certain computation generates two arrays a and b such that a[i] = f(i) for 0 ≤ i < n and b[i] = g(a[i]) for 0 ≤ i < n. Suppose this computation is decomposed into two concurrent processes X and Y such that X computes the array a and Y computed the array b. The processes employ two binary semaphores R and S, both initialized to zero. The array
***a*is shared by the two processes. The structures of the processes are shown below.

**[GATE 2013]**

Process X:

private i;

for (i=0; i<n; i++) {

a[i] = f(i);

ExitX(R, S);

}

Process Y:

private i;

for (i=0; i<n; i++) {

EntryY(R, S);

b[i] = g(a[i]);

}

Which one of the following represents the correct implementations of ExitX and EntryY?