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,
- 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".
- 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.
- 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.