---------------------------------- | | | available operations | | defined inside the monitor | | | | --- --- --- --- | | | | | | | | ... | | | <==== queue of calls to an operation | --- --- --- --- | in the monitor | | | | | global data and local data | | all internal to the monitor | | i.e. inaccessible outside | | the monitor | | | | procedures implementing the | | operations i.e. the details | | of the data structures | | making up the object | | | <=== queue of processes blocked on cond_1 | condition variables | <=== queue of processes blocked on cond_2 | cond_1, cond_2, ... | <=== ... | | ----------------------------------