|
|
|
|
|
|
|
|
|
|
|
|
|
n |
When S.count
>=0: the number of
|
|
|
processes
that can execute wait(S) without
|
|
being blocked
= S.count
|
|
|
n |
When
S.count<0: the number of processes
|
|
|
waiting on S
is = |S.count|
|
|
|
n |
Atomicity 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)
|
|
|
n |
This is a
critical section problem: the
|
|
|
critical
sections are the blocks of code
|
|
|
defining
wait(S) and signal(S)
|
|