O.S. Evaluations

Kyriakos Lakkas (klakkas@cs.ucsd.edu)
Thu, 25 May 2000 16:55:04 -0700

A. Bensoussan, C. T. Clingen, and R. C. Daley, "The Multics Virtual Memory:
Concepts and Design," Communications of the ACM, Vol. 15, No. 5, May 1972,
pp. 308-318.

The paper describes the use of segments as a way of organizing virtual
memory in Multics. The use of segments, that are associated with access
privileges and are divided into pages, provides a mechanism for direct and
efficient sharing of information. The paper goes through the implementation
details of the supervisor primitives needed for segment and page
manipulation, as well as the assumptions that where made for the system to
work properly.

One important aspect of sharing that is mentioned, but not discussed in
mutual exclusion. If the shared information is critical, there is no
trivial way of providing atomic operations. The only one I can think of is
to change temporarily the access rules of the critical data, so that only
one procedure will be able to read and write it, but even this approach has
many problems. It is a surprise to me that the authors mention mutual
exclusion as an important issue, but they totally ignore it in the
discussion of the implementation.

Richard Rashid, Avadis Tevanian, Michael Young, David Golub, Robert Baron,
David Black, William Bolosky, and Jonathan Chew, "Machine-Independent
Virtual Memory Management for Paged Uniprocessor and Multiprocessor
Architectures," Proceedings of the Second International Conference on
Architectural Support for Programming Languages and Operating Systems,
October 1987, pp. 31-39.

This paper describes CMU's Mach operating system and especially the virtual
memory management system. Great emphasis is given to the portability of the
code which is achieved by extracting all the hardware dependent code and
keeping it in one data structure. The rest of the paper describes the
abstractions offered by the system such as tasks, threads, ports, messages
and memory objects.

Since the copy-on-write optimization improves performance so much, it is
interesting to know why modern operating systems do not support it. Another
comment is that the paper is more like an engineering manual, describing
specific commands and their parameters, instead of defining and explaining
clearly the primitives used.