

MCQOPTIONS
Saved Bookmarks
1. |
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 busy-wait 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.AcquireLock (L) { while (Fetch_And_Add (L, 1)) L = 1; } ReleaseLock (L) { L = 0 } This implementation |
A. | fails as L can overflow |
B. | fails as L can take on a non-zero value that lock is actually available |
C. | works correctly but may starve some processes |
D. | works correctly without starvation |
Answer» C. works correctly but may starve some processes | |