123
Semaphores: observations
nWhen S.count >=0:  the number of processes that can execute wait(S) without being blocked = S.count nWhen S.count<0: the number of processes waiting on S is = |S.count| nAtomicity and mutual exclusion: no 2 process can be in wait(S) and signal(S) (on the same S) at the same time (even with multiple CPUs) nThis is a critical section problem: the critical sections are the blocks of code defining wait(S) and signal(S)