Paper Evaluations

Carnevali $ilvio (csmede@hotmail.com)
Wed, 10 May 2000 18:59:23 PDT

Monitors: An Operating System Structuring Concept.

This paper introduces the basic features of monitors, a structuring concept
used for program synchronization. They
are presented as being able to handle more general cases than simple
semaphores, even though a monitor can be
implemented using a combination of semaphores.

A monitor is a structure containing local data and procedures, that can be
called by external programs. Condition
Variables are used to prevent more than one program to execute
contemporarily the same portion of code from a
monitor, thus ensuring exclusive access to the resource it manages. Special
operators (wait and signal) are
associated to every Condition Variable as a mean to control the execution of
the called monitor procedures.
When more than one program is waiting on a given condition, then a first
solution would be to always execute the
program that has been waiting for a longer time; however, this concept has
been modified in order to introduce
priorities for each waiting program.
One of the key points of monitors is that they are implemented in a way
similar to data representation structures.
As a result, procedure calls are executed sequentially and the programmer
has the option to use local data invariants
between two consecutive executions of the same procedure, in order to
restore local variables to a predefined value.

The concept of synchronization through monitors was really new to me, and
this paper helped me understand the basics
as well as some real applications through simple examples like the Bounded
Buffer and Alarmcock. I think the concept
is well presented even though I don't really understand the reason for the
comparison with semaphores. If semapfores
and monitors are interchangeable, then what extra benefit do monitors have?
Future work is mentioned as some questions remain still open, like the exact
location of a signal within a procedure
or the disjointness of monitors.

Experience with Processes and Monitors in Mesa

The objective of this paper is to present an upgrade to the programming
language Mesa that would enable integration
of processes and monitors. This is particularily useful as monitors have
been discussed quite often in the past and
are used as a means of synchronization in concurrent systems, resource
sharing and interrupt handling.

Processes are represented as a regular variable in Mesa, through which they
can be accessed by other procedures.
A procedure can also be invoked as a process, since parameter passing rules
are the same. As a consequence, creating
a new process is a cheap operation that can be reduced to calling a
procedure.
The structure of Monitors is very similar to the structure of Mesa Modules
in that they both contain a list of
procedures and local data. The main difference is that Monitors support 3
types of procedures (entry, internal and
external), with the entry procedure being used as an unique access port to
the Monitor to prevent concurrent
execution of internal procedures; this is very important as any process
leaving a monitor has to restore the
invariant data that is expected by the next process in the monitor queue.
Special care has been accorded to avoid the occurrence of deadlocks. In
Mesa, it's up to the programmer to make sure
that such occurrences cannot occur by simply following some predefined
rules.
Finally, the overall implementation of the new Mesa functionalities is
presented. Processes are kept in 4 different
queues, depending on the reason why a process has been suspended, and
ordering is done according to processes'
priorities. The Mesa compiler recognizes processes as well as monitors and
generates the corresponding code.

After some first steps in the definition of monitors, this paper helped me
understand how they are actually
implemented in a current programming language, and how they are similar to
other data structures, like modules.
I think the overall structure of the paper is kinda unclear, it's hard to
extract the main ideas from the text.
Images are usually helpful to catch the main point, but the only image
provided is so straightforward I think they
could have done without it...
Finally, the work presented is considered as being complete for the targeted
modifications, thus there is no
mention of future work.

________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com