Review of Mach VMM

From: Joanna Muench (joannam_at_spro.net)
Date: Tue Feb 17 2004 - 18:00:27 PST

  • Next message: Prasanna Kumar Jayapal: "Review of Machine Independent VMM in Mach (by Rashid et al)..."

    Rashid et al. (1987) present their design and implementation of a
    portable virtual memory management system. The Mach operating system
    makes minimal assumptions regarding memory management hardware, enabling
    it to be easily ported to at least six different architectures. They
    claim their implementation is made without sacrificing system
    performance, although benchmarks are provided only against the
    relatively unsophisticated UNIX system.

    The Mach design is essentially object-oriented, using memory objects to
    represent collections of data and threads as units of CPU utilization.
    Ports are the object references to these memory objects and threads;
    they enable the message-passing based design to actually perform
    efficiently. The integration of the VMM with message-passing allows
    memory remapping of data, rather than copying. Both inheritance to child
    tasks and protection are specified on a per-page basis.

    The actual implementation of the design is requires division into those
    sections depending on the underlying machine architecture and those that
    are independent. The important virtual memory information is machine
    independent. Some of the important implementation details are the use of
    a memory object list, a memory allocation queue and an object/offset
    hash bucket. The byte offsets in memory are important to maintain
    machine independent, avoiding linking a Mach physical page with a
    machine physical page.

    Memory sharing is an important concept to the Mach system. Because the
    system implements copy-on-write and read-write memory sharing between
    tasks, multiple tasks can have address maps corresponding to a single
    memory object. Mach creates shadow objects to hold modified pages
    resulting from copy-on-write faults. These shadow objects create chains,
    from which the original object will eventually be found. The downside to
    this scheme is the potential for long chains of shadow objects which
    require garbage collection to avoid chains that are longer than
    necessary.

    In porting the Mach system to different architectures the primary
    challenge was handling multiprocessor computers. Mach was unable to
    guarantee cache consistency across multiple processors. The authors
    proposed three different solutions, although they didn't provide
    examples of implementations.

    The paper offers an interesting and sophisticated virtual memory
    management system. I found the object-oriented nature of the OS
    intriguing, especially in how it enabled message-passing to be an
    efficient implementation.


  • Next message: Prasanna Kumar Jayapal: "Review of Machine Independent VMM in Mach (by Rashid et al)..."

    This archive was generated by hypermail 2.1.6 : Tue Feb 17 2004 - 17:56:48 PST