•A monitor is a shared data object together with a set of operationsto manipulate it.
•To enforce mutual exclusion, at most one process may executeoperations defined for the data object at any given time.
•All uses of shared variables are governed by monitors.
–Support data abstraction (hide implementation details)
–Only one process may execute a monitor's procedure at a time
–data type “condition” for synchronization(can be waited or signaled within a monitor procedure)
–Two operations on “condition” variables:
•wait: Forces the caller to be delayed. Exclusion released.Hidden Q of waiters.
•signal: One waiting process is resumed if there are waiters,and is not remembered.