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

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.

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

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.