Review: Rashid, et al., Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures.

From: isking_at_u.washington.edu
Date: Wed Feb 11 2004 - 18:03:28 PST

  • Next message: Chuck Reeves: "Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures"

    This paper describes the virtual memory management system implemented in the Mach kernel, an academic exercise by Carnegie-Mellon University to support multiprocessors in a UNIX metaphor. A principal design goal was to abstract the virtual memory system sufficiently that only minor machine-specific code would be required, and hardware support requirements minimized. Mach was also intended to be the kernel for the overal GNU architecture envisioned by Richard Stallman of MIT.

    The most interesting concept of this paper was the assertion that physical memory is a "cache" for virtual memory, i.e. the reality of virtual memory lives in backing store. This pre-eminent role for backing store seems to have driven the design to optimize the relationship of both the OS and the application to the store; key concepts of mapping and management are expressed in terms of how the store is manipulated. This goal seems to have been powerful in the outcome: not only has this kernel been ported to numerous, quite distinctive architectures, but its performance is notable, often outperforming traditional implementations that are more closely coupled to the hardware on which they are built.

    It is especially interesting that the message-passing model of Mach not only works effectively and efficiently with this model, but is in fact enabled by it. While the paper does not address the performance hit on distributed architectures, for uniprocessor and shared-memory multiprocessors the combination of memory-based message passing and strong support for lazy sharing - primarily through copy-on-write - drive good performance of the message-passing architecture.

    While the VM system is transparent to the casual programmer, the architecture exposes significant control to the adept coder, including both the ability to manage VM interactions and even enhance VM through application-appropriate paging mechanisms. This does not appear to dilute the clarity of the core feature set nor compromise the design philosophy, thus making it much more accessible.

    This review is late and short because of printer issues -- they run out of ink. <sigh>


  • Next message: Chuck Reeves: "Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures"

    This archive was generated by hypermail 2.1.6 : Wed Feb 11 2004 - 18:03:30 PST