Paper reviews

Bryan Wang (wangbry@hotmail.com)
Thu, 25 May 2000 00:20:43 PDT

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

The Multics Virtual Memory: Concepts and Design

This aptly-titled paper explains the concepts and design of the Multics
virtual memory
system. It is segment-based, offering richer protection mechanisms than
purely page-
based virtual-memory systems. In addition to richer protection, this
segment-based
memory scheme provides better opportunities for data sharing. The symbolic
"directory-
style" references to Virtual Memory might also be a nice feature. The paper
describes
both the user and supervisor issues to implementing this virtual memory
scheme.

One plus to the Multics implementation was that the supervisor followed the
same
segment/page organization as user processes.

However, there seems to be a lot of complicated overhead related to segment
management. The nitty-gritty of making a new segment known to a Multics
process were
particularly difficult to follow. The overhead could potentially be
expensive, and might
outweigh the benefits that segments provide. Also, segment management
requires special
supporting hardware. It would be an interesting study to see how well the
system really
performs compared to a traditional page-based VM, or compared to a machine-
independent VM implementation like Mach.

The intro and closing of this paper were well-written. The middle parts
could have been
better-organized and more readable. It suffers from some of the same
shortcomings (in
terms of readability) as the first Multics paper that we read.

Bryan Wang, 5/24/00

Machine-Independent Virtual Memory Management

This paper describes the virtual memory system design of the Mach operating
system,
known for its machine-independent architecture. By making very few
assumptions about
the underlying hardware, the majority of Mach's VM code is written to be
machine-
independent with only a single module (the pmap) to represent
machine-dependent
structures. With this sort of system and with the experience gained from
porting the
system to many hardware platforms, the designers were able to make
relatively unbiased
comparisons between hardware memory-handling architectures.

Their methodology was to use abstractions to represent operating system
functions with
linked-list implementations to represent mappings. This way, the size of
the tables can
grow or shrink with the workload. Also, this design choice was easily
ported to other
hardware platforms. The message-based structure of Mach lends itself to
multiprocessor
environments.

This paper presents its arguments clearly and supports them well. It runs
circles around
that Multics VM paper. The most interesting trick I learned from this paper
was an
optimization for copy-on-write. Using "Shadow Objects", it's possible to
copy-on-write
only the specific pages of an object that are modified instead of copying
the entire object.
Very spiffy!