Gate CS-2006 Question Paper With Solutions

Q. 61 The atomic fetch-and-set x, y instruction unconditionally sets the memory location x to 1 and fetches the old value of x n y without allowing any intervening access to the memory location 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 can be used

(C) The implementation of V is wrong

(D) The code does not implement a binary semaphore

Answer: (A)

Explanation:

Gate CS-2006 Question Paper With Solutions

Learn More:   Gate EC-2019 Question Paper With Solutions

LEAVE A REPLY

Please enter your comment!
Please enter your name here