From: Steve Arnold (steve.arnold4_at_verizon.net)
Date: Tue Feb 10 2004 - 22:12:57 PST
In this paper, Levy and Lipman describe Virtual memory as implemented in
DEC's VAX/VMS. In general, this is a standard VM system, with memory
addresses representing a page number and an offset, with pages being of some
(configurable) fixed size. The memory space is divided into three sections:
SYSTEM, P0, and P1. In the system area is what they call executive data,
basically OS routines. In the user space there are two spaces that grow
toward each other. One is the program itself and the other is its stack.
There are, however, a few ways in which they had diverged from the standard
VM system of the time. When they remove pages, they ensure that it is from
the current process. Some number of pages removed from the resident set are
cached.
Another approach they use is clustering. This is whether the disk I/O is
batched. When contiguous segments are found, then they can be clustered in
this way. As mentioned before, they also use "process local replacement."
This seems to work due to the way that resident spaces are swapped. That is
entire program areas are copied out and new one copied in all at once,
rather then letting them fault in on every process switch.
This paper was hard to read due to its bad copy and blurred text. Aside from
that, the concepts were not too hard to grasp. For a system like VAX, they
may some good improvements. Would it work for today's system with vast
amounts of memory?
This archive was generated by hypermail 2.1.6 : Tue Feb 10 2004 - 22:11:53 PST