A certain computation generates two arrays a and b such that a [i] = f (i) for 0 $\le$ i < n and b [i] = g (a [i]) for 0 $\le$ i < n. Suppose this computation is decomposed into two concurrent processes X and Y such that X computes the array a and Y computes the array b. The processes employ two binary semaphores R and S, both initialised to zero. The array a is shared by the two processes. The structures of the processes are shown below.
Process X;
Process Y;
private i;
private i;
for (i = 0; i < n; i + +) {
for (i = 0; i < n; i + +) {
a [i] = f (i);
EntryY (R, S);
ExitX (R, S);
b [i] = g (a [i]);
}
}
Which one of the following represents the CORRECT implementations of ExitX and EntryY?
Reveal answer
Fill a bubble to check yourself