From: Richard Jackson (richja_at_expedia.com)
Date: Wed Feb 11 2004 - 14:53:41 PST
This 1987 paper by Rashid, et al discusses the implementation of a
virtual memory system on Mach, which works with various underlying
hardware implementations.
This paper includes the following sections: 1) overview of Mach design,
2) Mach virtual memory system, 3) porting issues, 4) performance.
First, an overview of Mach is given, to give some background for the
virtual memory implementation. Mach uses tasks(like UNIX process),
threads(program counter within a task), port(communication mechanism),
messages, and memory objects. The main point of this section is that
Mach uses message passing to communicate between threads/tasks, via
ports. It also claims that this message passing approach, while
generally poor-performing, works well in Mach because the virtual memory
system is integrated with the message passing system.
Next, the virtual memory system is described. The key components are:
1) resident page table(list of machine independent pages), 2)address
map(map between addresses and memory objects), 3)memory object(basic
unit of storage), 4)pmap(machine dependent map with physical addresses).
Of these all are generic(will work with any hardware), except pmap,
which must be custom-coded for each hardware system. The paper
discusses each of these four concepts in detail. Also discussed is the
concept of a pager, which is responsible for managing memory objects,
caching, and persistent storage. The pager can either be externally
supplied, or you can use a basic pager which exists in the Mach kernel.
The short section on porting included some details about how long it
takes to port to a new platform. For example, for IBM RT PC, the port
took only 3 weeks for a programmer unfamiliar with the Mach operating
system. This demonstrates the flexibility of this virtual memory system,
which seemed to be the main benefit of this design.
Finally, performance is discussed. Interestingly, the Mach kernel often
performs the same or better than a comparable UNIX platform. The reason
for this was not clear to me. It seemed that Mach might perform worse,
since its design may not embrace all features of the underlying
hardware, as a tradeoff for a generic design.
This archive was generated by hypermail 2.1.6 : Wed Feb 11 2004 - 14:53:52 PST