GATE Exam | Aptitude Questions | GATE Syllabus | GATE Result | Mock Test | GATE Preparation
0 votes

The atomic fetch-and-set x, y instruction unconditionally sets the memory location x to 1 and fetches the old value of x in y without allowing any intervening access to the memory location x. consider the following implementation of P and V functions on a binary semaphore .

void P (binary_semaphore *s) {
  unsigned y;
  unsigned *x = &(s->value);
  do {
     fetch-and-set x, y;
  } while (y);
}

void V (binary_semaphore *s) {
  S->value = 0;
}

Which one of the following is true?

A

The implementation may not work if context switching is disabled in P.

B

Instead of using fetch-and-set, a pair of normal load/store can be used

C

The implementation of V is wrong

D

The code does not implement a binary semaphore

asked in concurrency and synchronization by gate

1 Answer

0 votes
The implementation may not work if context switching is disabled in P
answered by gate

Related questions

The best answer to any question