From: Justin Voskuhl (justinv_at_microsoft.com)
Date: Wed Feb 11 2004 - 15:25:38 PST
This paper describes a design for a highly portable implementation of a
memory management subsystem. The system is designed to support very
large, sparse virtual address spaces, copy-on-write operations, sharing
between processes, memory mapped files, and user-mode backing store
objects and paging systems.
The authors claim to have ported their system to six different
architectures that have varying degrees of hardware support for their
model. There is a small component that has to be implemented on each
type of system called the PMAP interface. Its primary function is to
maintain a set of data structures that define the physical address map
that are typically hardware dependent.
The key Mach abstractions are very interesting. They've provided
message passing as the primary way to provide and requests services
within the system. Messages are special data objects used to
communicate in the system. Messages are sent to objects called Ports
which can be thought of as a queue. Send and Receive are the
fundamental operations on Ports.
A memory object is managed by a server (it seems that multiple paging
servers were accounted for) and can be mapped into the address space of
a process. The system provides both processes and threads. Their work
is clearly highly influential in the modern operating systems we use
today: Mac OS X derives from Mach, and Windows NT is obviously highly
influenced by its design.
This archive was generated by hypermail 2.1.6 : Wed Feb 11 2004 - 15:25:45 PST