Monitors
A monitor is a programming language construct that supports controlled access to shared data.
- leverage language, compiler, runtime.
- advantages?
A monitor is a module that encapsulates:
1. some shared data structures
2. procedures that operate on that shared data
3. synchronization between concurrent processes that invoke those procedures
A monitor protects the data from unstructured access.
The monitor guarantees that processes trying to access the data through its procedures interact only in legitimate ways.