Monitors

Hoare Monitors Monitors vs semaphores Monitor Invariant is the data protected by monitor Condition variables are waiting for state of data Scheduled waits, priority to execute based on time
 * Software eng argument that it makes it a lot easier to deal with worrying about a single point of a montior.
 * Structure of an os using monitor s
 * Like a class 'class'
 * Procedures in monitor have a global lock for entire montiors
 * Condition variables for coordination
 * Once signal is called, we immediately resume execution of the wait-er
 * Invariant: data structure is in a stable state
 * Condition vars waiting for a specific state to occur
 * Assumptions to make during calls
 * Entering Wait: invariant is true, condition is false
 * Signal: invariant is true, condition is true
 * Same is true in exiting wait
 * Exiting signal: Invariant is true