CS262A Reading Summary 4

The Multics Virtual Memory: Concepts and Design

A. Bensoussan et al
Summary by Feng Zhou
9/8/2002

This paper summarizes the VM management part of Multics design. Main strong points of the paper include,

  1. Multics combines segmentation and paging, resulting in a very flexible VM system.  Segmentation basically provides sharing and access control while paging supports linear address space and protection.  This requires sophisticated hardware support, which was very expensive at that time.  This reflects the fact that Multics was "ahead-of-time".
  2. One very interesting point in the paper is file system is an implicit part of segmentation functionality.  Thus segmentation in Multics is a mixture of common memory segmentation and file system.  Segments are long lived and accessed by tree-structured path name.  Data is automatically fetched from secondary store and written back after modification.  The difference from file systems is that users use no explicit I/O system calls.  I believe this is similar to what we call "memory-mapped-file" now.  I think it is generally a good idea by providing uniform access to all data in-core and out-of-core.  However, I have one complaint about this in "one major flaw" part.
  3. Memory segments and files are organized in a tree structure.  This makes data organization a lot easier, which is a huge advance at the time.

One major flaw:

The system does not distinguish between temporal and persistent data, by elliminating the difference between memory segments and files.  This unifies the API, which is a good thing.  However there are certainly arguments against this design.  One is that sophisticated "applications" like DBMSes may lose their desired control of when I/O really happens and thus cannot gurantee the integrity of data.  Another is that a lot of  temporal data do not need to be kept in secondary storage, which will result in wasting of space.