Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures.

From: Manish Mittal (manishm_at_microsoft.com)
Date: Tue Feb 17 2004 - 11:55:05 PST

  • Next message: Joanna Muench: "Review of Mach VMM"

    This paper discusses the design and implementation of a virtual
    management system for the Mach OS. The major goal of this paper is to
    create a machine-independent virtual memory system without compromising
    on performance.

     

    The primary approach the authors take is to divide up the virtual memory
    subsystem into two parts: a machine-dependent part and a
    machine-independent part. The two parts are loosely coupled and highly
    modular. Mach VMM makes little assumptions about the hardware support
    that exists for virtual memory, but instead defines a rich interface
    between the independent/dependent layers. To do this, an extra level of
    indirection is required in the mapping from virtual memory to physical
    memory.

    Mach tasks use "address maps" which map to contiguous regions of memory
    objects. Memory objects are basically memory mapped backing stores. The
    mapping between physical memory and memory objects is maintained in
    pmaps. The address space is divided into pages, and inheritance &
    protection can be specified on a per-page basis. The inheritance
    attribute allows pages to be shared across tasks. Mach also does garbage
    collection to reclaim memory objects which are no longer referenced by
    any address map. For implementing copy-on-write, Mach creates shadow
    copies of memory objects, which only keep track of modified pages. A
    chain of shadow objects may result, since tasks may inherit a shadowed
    page. To prevent excessive shadow chaining, the Mach garbage collection
    reclaims intermediate shadow objects that are no longer needed. Mach is
    very flexible about the mappings contained in the pmap. The pmap is not
    required to store all valid mappings, since most of these can be
    constructed from memory objects when required. Only the mappings for the
    kernel are required to be valid at all times. Mach can handle page
    faults and page-out requests outside of the kernel by usage of external
    pagers associated with memory objects.

     

    The paper goes into considerable depth on the implementation of the
    copy-on-write mechanism in Mach. Another interesting approach taken by
    the authors was to describe the various issues in implementing the Mach
    VM on various uni-processors and multi processors. This helps to gauge
    the authors' initial goal of making Mach VM as hardware independent as
    possible. Finally, they give some performance measurements to show that
    the hardware independence does not come at the cost of performance.

     


  • Next message: Joanna Muench: "Review of Mach VMM"

    This archive was generated by hypermail 2.1.6 : Tue Feb 17 2004 - 11:55:09 PST