Paper evalutions

Kiran Tati (
Thu, 11 May 2000 07:43:02 -0700

Monitors: An Operating System Structuring Concept
This paper describes the synchronization structure called monitor.
Monitor is a simple class like structure but it is guaranteed that only
function/method is executed at any time. Monitor contains some data and
some methods and data is accessed only through those methods declared in
the monitor. So the data consistency is guaranteed. This simple monitor
structure only provide the critical section problem so two new
constructs, wait and signal, are added to support arbitrary
synchronization. The method that called wait on a conditional variable
is releases the lock on the monitor and this starts execution once some
other method calls the signal method on the same conditional variable.
So by calling the signal function on the conditional variable it
satisfies the some condition on which other process is waiting. The
process is blocked after the signal call to allow any process that block
on the wait method. The correctness proof is depend on the properties
that only one method is in the execution at a time and data of the
monitor is accessible only within the methods defined in the monitor.
Even though it looks simple but designing process synchronization is
hard and needs think about the dead lock. There is no way of
automatically detecting the deadlock in the monitors.

Experiences with Processes and Monitors in Mesa:
This paper describes how other language features interact with the
Monitors in Mesa language. In Mesa a method invocation can create a new
process to exploit the parallelism at the function level. Processes are
first class value so one uses the process wherever a variable is used.
So some care should take about the dandling process (process can be
created and deleted at any time) and parameters passed to the process
function method should be live till process dies. The monitor in the
Mesa is little different from the one described in the above paper and
these differences are extra type of functions/methods (external and
internal) in a monitors, semantics of wait call is different, Exceptions
in the monitor simply releases the lock and execute the user specified
function before returning from the monitor, another new concept called
monitor objects, some variations to the signal (like naked notify,
timeout, abort, broadcast). Priority inversion problem is avoided by
simply assigning the highest priority to the monitor and process that
accessing the monitor inherits this priority whenever it accessing the
monitor. Another interesting fact is that all these methods are
implemented using very few instructions and I hope the number of
instructions on the modern RISC process should substantially increases
the number of instructions.

Kiran Tati (Graduate Student)            Kiran Tati
UCSD/CSE AP&M 4402                       9450 Gilman Drive
9500, Gilman Drive, Dept. 0114           UCSD#922563
La Jolla, CA, 92093-0114                 La Jolla, CA 92092-2563
Phone:  858 5345486 (Office)             858 552 9291 (Home)

Office Address: AP & M 6426