Papers for 5/11

Mark Andrew SMITH (masmith@cs.ucsd.edu)
Thu, 11 May 2000 01:19:59 -0700 (PDT)

Monitors: An OS Structuring Concept

The idea of monitors in this paper stems from the fact that semaphores are
very low level. As low level constructs, they are prone to coding errors.
Further, they're use is generally very narrow. It would be nice to provide
an abstraction for the few different uses that semaphores have so as to
have a higher level less error prone API for mutual exclusion and resource
allocation. Monitors provide this abstraction. It is shown also that
monitors can be implemented in terms of semaphores and vice-versa showing
that monitors are as expressive as semaphores. Priority is implemented by
signalling the process with the highest priority in the wait queue. Has
some of the same scheduling problems as does normal semaphore stuff with
poor use leading to starvation. Something strange said on 557: "Do not
seek to present the user with a virtual machine which is better than the
actual hardware." Seems that this contradicts the whole idea behind
virtual memory.

Experience with Processes and Monitors in Mesa

This paper looks at monitors in terms of how useful and robust they are in
a real operating system design. (Pilot) Some issues that have not been
looked at before including aborting and monitoring large numbers of small
objects/resources. Also, invariants are addressed. Inside a monitor,
invariant do not need to be kept (because no other process will ever see
the invariant broken since it can't be in the monitor too), but once
outside the monitor, the invariant must be maintained. It was concluded
that much needed be be learned before monitors were robust enough to
handle large software systems, but once they were worked out, the monitors
provided sufficient functionality to complete the task.

-Mark Smith