Sail E0 Webinar
Question
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 pseudo code 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
Options:
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: Option B


-NA-



Was this answer helpful ?
Next Question

Submit Solution

Your email address will not be published. Required fields are marked *

More Questions on This Topic :


Latest Videos

Latest Test Papers