The atomic fetch-and-set x, y instruction unconditionally sets memory location…
GATE · 2006 · CS
The atomic fetch-and-set x, y instruction unconditionally sets memory location x to 1 and fetches the old value of x in y without allowing any intervening access to x. Consider the following implementation of P and V functions on a binary semaphore S.
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 operations can be used
- C.
The implementation of V is wrong
- D.
The code does not implement a binary semaphore
Attempted by 10 students.
Show answer
Correct answer: A
The worked solution is available to enrolled students.
Video solution available to enrolled students.
Explore the full course: Iocl Engineers Officers Grade A Paper 2