From: Jeff Duzak (jduzak_at_exchange.microsoft.com)
Date: Tue Feb 10 2004 - 22:46:17 PST
True to its title, this paper describes the VM system in the VAX/VMS
system. The system used a 32-bit address space, with half of that space
being per-process and the other half, the system half, being shared
between all processes. The paper describes the page tables, which map
virtual addresses to physical pages; the pager, which is responsible for
faulting in required pages, and removing pages from physical memory when
space is needed; and the swapper, which does batch loading and saving of
all pages associated with a particular process. The paper also
describes a number of performance optimizations included in the system,
such as free and modified page lists, clustering of pages read from and
written to disk, as well as facilities to allow a program to optimize
its process's paging.
The description of the layout of the page tables was very
straightforward, except that it was somewhat unclear what tasks were
done by hardware, and which were done by the OS. For example, the
statement that all except 5 bits of each page table entry could be
modified by software initially confused me. I had initially thought
that since the process page table is in the system part of the address
space, the system would be able to modify it in its entirety directly.
The description of the free and modified page lists also initially
confused me. In particular, where are these lists stored? Since they
are faulted out of the process's resident set, they must either be
stored in an area of process physical memory not used by other
processes, or in system physical memory. In either case, I would assume
that these lists are common to all processes. This brings up the
question whether these lists re-introduce competition between processes
for physical memory, despite the limits on the size of each process's
resident set.
The clustering mechanism seems like good performance improvement. Such
a mechanism would presumably increase the motivation for application
programmers to localize code. It is especially interesting how the
modified page list allows write-clustering to be more efficient. These
two optimization complement each other nicely.
This archive was generated by hypermail 2.1.6 : Tue Feb 10 2004 - 22:46:20 PST