O.S. Evaluations

Kyriakos Lakkas (klakkas@cs.ucsd.edu)
Thu, 11 May 2000 02:46:21 -0700

C. A. R. Hoare, "Monitors: An Operating System Structuring Concept,"
Communications of the ACM, Vol. 17, No. 10, October, 1974, pp. 549-557.

This paper introduces the use of monitors as a way to handle and schedule
resources for several parallel processes. A monitor is defined as a
collection of administrative data, along with some functions (mainly acquire
and release) used to access resources. The author presents an implementation
for monitors and also claims (and proves) a functional equivalence between
monitors and semaphores. Finally, he includes several examples of the use of
monitors.

It was really painful going back in papers of the 70's... The reason that I
think I understand what the paper is talking about, is that I previously
knew what a monitor is. Otherwise, based only on the description provided in
the paper, I don't think that I would stand a chance...

B. W. Lampson and D. D. Redell, "Experience with Processes and Monitors in
Mesa," Communications of the ACM, Vol. 23, No. 2, February 1980, pp.
105-117.

This second paper discusses the difficulties that arose when the designers
of Pilot tried to use monitors in both the design of the actual Operating
System and large scale applications. A handful of problems is presented,
along with proposed solutions (which were actually implemented in their
system).

The authors give us a clear inside in the decision procedure that they
followed. The three application examples that they include, put it all
together and make everything much easier to understand.