Levy Paper Review

From: Brian Milnes (brianmilnes_at_qwest.net)
Date: Wed Feb 11 2004 - 16:24:35 PST

  • Next message: neshnash_at_u.washington.edu: ""Virtual Memory Management in VAX/VMS" Review"

    Virtual Memory Management in the VAX/VMS Operating System - Levy, Lipman

    The author's review the algorithms for virtual memory management in the
    VAX/VMS operating system. The operating system was designed for real-time,
    interactive and batch applications ranging from 250KB up to a whopping 8 MB.
    Each process had 32 bits of address space with a small 512B page size for
    PDP-11 compatibility. The VAX had a split system/user TLB and the page
    tables were held in a system memory space whose pages could be swapped out.
    The system splits the work between a pager and a swapper.

    The pager uses a pseudo LRU algorithm and selects pages from the requesting
    process when it has hit its page limit. The pager keeps a FIFO list of the
    resident pages for each process. When a page is reclaimed it is placed on a
    free or dirty list. If a process faults a page on these lists, they are
    quickly mapped back into the process. The small pages caused the designers
    to cluster both page reads and page writes. The dirty page writing algorithm
    tries to keep a minimum number of pages around to cache and to allow
    clustered writes. The pager also provides ZEFOD and copy on reference pages.

    The operating system itself is paged in the same way with the exception of
    the page tables. When a process faults its page table it is added to its
    resident set and can be swapped with the process.

    Their measurements show that clustering works well with nearly six pages per
    read, over 100 pages per write and that nearly half of the page faults were
    handled from lists or ZEFOD pages.

    The swapper was designed to keep the highest priority processes active and
    to avoid high paging rates on process restart. The swapper writes an entire
    process in a continuous sequence and back fills pages waiting for I/O. The
    process is read in and reconstructed when there is RAM for its entire
    resident set. Weirdly, the swapper also starts a new process by swapping in
    a shell process. The OS also provides interfaces for the process to increase
    or decrease its regions, its resident set, lock resident set pages, lock the
    whole process in RAM and map pages.

    The paper is a pretty straight forward review of the virtual memory system
    of an early operating system. The clustering of page IO and the programmatic
    interface to memory were both ahead of their time.


  • Next message: neshnash_at_u.washington.edu: ""Virtual Memory Management in VAX/VMS" Review"

    This archive was generated by hypermail 2.1.6 : Wed Feb 11 2004 - 16:24:48 PST