Qiao XIN (qxin@cs.ucsd.edu)
Wed, 10 May 2000 23:59:27 -0700 (PDT)


Evaluation of the Paper: Monitors

This paper suggests an appropriate structure for a module of an
operating system which schedules resources for parallel user
processes. It develops the concept of monitor to introduce a form of

The paper proves that the monitor/condition concepts are not less
powerful than semaphores by simulating a Boolean semaphore using
single resource monitor, and also shows that monitor can be
implemented by semaphores. But significant improvement in efficiency
is possible.

What is impressive for me is the analogy between a monitor and a data
representation. The structure of a class of monitors is identical to
that for a data representation. The mutual exclusion ensures that
procedure calls behave as they do in sequential programming. Thus the
same proof rules can be applied to monitors as to data
representations. The correctness of monitors is shown by proof rules
together with some examples.

I am not sure about answers to questions like whether the signal
should always be the last operation of a monitor procedure, and the
possibility of the design of the disjointness of monitors.

Evaluation of the Paper: Experience with Processes and
Monitors in Mesa

This paper discusses experience with the integration of processes and
monitors into the Mesa language to serve the purpose of local
concurrent programming, global resource sharing and replacing

I think the implementation of monitors and conditional variables is
suitable. Monitors as a concurrency facilities provide an environment
in which deadlock lock can be avoided reasonably easily. For a
collection of shared data objects functioning independently, each
object is given its own monitor to obtain maximum concurrency. This is
implemented by a new type of constructor called monitor record.

The different view of Mesa's treatment of NOTIFY as a hint makes no
constraints on when the waiting process must run after a NOTIFY. The
verification rules for Mesa monitors are thus simple. Applications may
choose a cheap predicate which implies the exact condition and notify
a covering condition variable. This is an attractive way to decouple
the detailed design of two processes. The naked NOTIFY mechanism
enables communication with input/output devices handled by monitors
and conditional variables much like communication among processes.
Interactions between monitors and process scheduling is taken care of
exclusively here by disabling interrupts on entry to a monitor.

Problems are:
1. Random calling of the entry procedures needs other provisions made
outside the monitor.
2.Type system of Mesa is not strong enough to make the monitor record
construction completely safe.
3.The UNWIND mechanism in Mesa must interact properly with monitors.