Review of "Virtual Memory Management in the VAX/VMS Operating System"

From: Jeff Duzak (jduzak_at_exchange.microsoft.com)
Date: Tue Feb 10 2004 - 22:46:17 PST

  • Next message: Honghai Liu: "Virtual Memory Mangement in VAX/VMS OS"

    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.


  • Next message: Honghai Liu: "Virtual Memory Mangement in VAX/VMS OS"

    This archive was generated by hypermail 2.1.6 : Tue Feb 10 2004 - 22:46:20 PST