Efficiency Issues
Busy-waiting in the wait() procedure is undesirable in time-sharing systems
- Busy-waiting process ties up the processor, but does not execute any useful instructions
Say process Q has to perform signal( S ) to allow waiting process P to run
- More efficient to allow Q to run
try_again: if ( Test-and-Set( addr(S) ) == 0 ) then