The monitor is an extension of early operating system designs. Early
operating systems provided resource control by running users programs
uninterruptedly, by having complete control of I/O
and by having exclusive use of some parts of memory.
This gothic monitor may be provided as a more decentralized tool for
the applications programmer:
A monitor is a collection of procedures with private data, plus an
Entry to the procedures in a monitor is defined to be mutually
exclusive (i.e. a strict monitor has only one client at a time).
To proved synchronisation between processes calling these routines,
are a pair of routines like semaphores. Since the monitor has private
(safe) data to count events with, we only require the blocking and
waking functionality. This is shown in figure #fnmon#367>.