evals for 5/11/2000

Yod (h13nguye@ieng9.ucsd.edu)
Thu, 11 May 2000 01:40:26 -0700 (PDT)

Henry H. Nguyen
(858) 587-7046
Title: Experience with Processes and Monitors in Mesa

The focus of this paper is to illustrate the sucessful attempt made by Mesa in
using monitor to solve several key issues such as: the semantics of nested
monitor calls, the various ways of defining the meaning of WAIT, priority
scheduling, handling of timeouts, aborts and other exceptional conditions,
interactions with process creation and destruction, and monitoring large
numbers of small objects.

The paper begins describing monitor as mechanism to synchronize shared data
between several processes. Shared data is protected by monitor, and can only
be accessed within the body of a monitor procedure. There are two kinds of
monitor procedures: empty procedure, which can be called from outside the
monitor, and internal procedure, which can only be called from monitor
procedures. However, before going on the describe Mesa monitor, the author
refers to monitors as primitive building blocks for more complex scheduling
policies because monitors do not solve all problems of concurrent programming.

In its detailed description of monitor, the paper talks about monitor modules,
deadlock situations, monitored objects, and condition variables for wait
functions. The three ways to resume a waiting process through notification are
timeout, abort, and broadcast. The paper also talks about using priority of an
application to enhance the scheduling of processes.

The other aspects of this paper include implementation and applications.
According to the paper, the implementation of processes and monitors is split
roughly equal among the Mesa compiler, the runtime package, and the underlying
machine. As for the applications, the paper describe the way in which processes
and monitors are used for the operating system, the calendar system using
replicated detabases, and the internetwork gateway.

Title: Monitors: An Operating System Structuring Concept

The focus of this paper is the use of the concept of a monitor as a method of
stucturing an operating system. The paper argues that monitor is used in an OS
to allocate resources, with algorithms to maximize performance and consistency.

The monitor describes in the paper contains a set of data local to the monitor
and a set of procedures. Procedures of a monitor can be called by other monitor
by given the name of the monitor as well as the name of the procedure. Within
the procedures of the monitor, conditions such as wait, signal, and exit are
being handled to provide consistency of resources utilization. And in some
cases, an operating system monitor may constructs some "virtual" resource which
is used in place of actual resources.

There were some examples presented in the paper to illustrate the functions of
monitors in an operating system. The first of these examples listed is the
bounded buffer. In this example, monitor is used to ensure the operations,
append and remove, are correctly implemented. Append must waits until the
buffer is not full, and remove must waits until the buffer is not empty.

The paper also went on to discus about the fact that sometimes the first come
first served schedule for wait may not be adequate. Sometimes, the schedule for
wait may depend on the priority of the waiting program.

Before concluding the paper, several more examples were talked about, such as:
buffer allocation, disk head scheduler, and readers/writers. A notion of OS
having disjointness of monitors, where separate isolated monitor is designed
for each kind of resource, is also discused. However, it was quickly brushed
off and concluded to be bad design to implement an OS with disjoint monitors
without having examples to support it.