Gate CS-2012 Question Paper With Solutions

Q. 32 Fetch_And_Add(X,i) is an atomic Read-Modify-Write instruction that reads
the value of memory location X, increments it by the value i , and returns the
old value of X. It is used in the pseudocode shown below to implement a busywait
lock. L is an unsigned integer shared variable initialized to 0. the value of 0
corresponds to lock being available, while any non-zero value corresponds to the
lock being not available.

         while (Fetch_And_Add(L,1))
               L = 1;
         L = 0;

This implementation

(A) fails as L can overflow

(B) fails as L can take on a non-zero value when the lock is actually available

(C) works correctly but may starve some processes

(D) works correctly without starvation

Answer: (B)


Gate CS-2012 Question Paper With Solutions Gate CS-2012 Question Paper With Solutions

Learn More:   Gate EE-2014-3 Question Paper With Solutions


Please enter your comment!
Please enter your name here