MPS Design Documents

author Richard Brooksby
confidentiality public
date 2002-05-23
format rst
organization Ravenbrook Limited
readership developers
revision //
type index


This is the catalogue of design documents of the Memory Pool System product.


This is not a complete set of design documents for the MPS. We have many hundreds of documents from before the MPS was acquired by Ravenbrook on 2001-08-10, many of which contain confidential information [RB_2002-06-18]. We are sorting through these and will include more as time goes on. We have tried to select the key documents for inclusion in the open source release, by including those documents referenced by the source code.

If there is a document you think might exist and want to see it, please write to and we will try to dig it up.


abq Fixed-length queues
alloc-frame Design of the MPS allocation frame protocol
arena The design of the MPS arena
arenavm Virtual memory arena
bt Bit tables
buffer Allocation buffers and allocation points
cbs Coalescing Block Structure land implementation
check Design of checking in MPS
class-interface Design of the pool class interface
collection The collection framework
config The design of MPS configuration
critical-path The critical path through the MPS
diag The design of MPS diagnostic feedback
failover Fail-over land implementation
finalize Finalization
fix The Design of the Generic Fix Function
freelist Free list land implementation
guide.hex.trans Guide to transliterating the alphabet into hexadecimal
guide.impl.c.format Coding standard: conventions for the general format of C source code in the MPS
guide.impl.c.naming Coding standard: conventions for internal names
interface-c The design of the Memory Pool System interface to C
io The design of the MPS I/O subsystem
keyword-arguments The design of the MPS mechanism for passing arguments by keyword.
land Lands (collections of address ranges)
lib The design of the Memory Pool System library interface
lock The design of the lock module
locus The design for the locus manager
message MPS to client message protocol
message-gc Messages sent when garbage collection begins or ends
nailboard Nailboards for ambiguously referenced segments
object-debug Debugging Features for Client Objects
pool The design of the pool and pool class mechanisms
poolamc Automatic Mostly-Copying pool class
poolams Automatic Mark-and-Sweep pool class
poolawl Automatic Weak Linked pool class
poollo Leaf Object pool class
poolmfs Manual Fixed Small pool class
poolmrg Manual Rank Guardian pool class
poolmv Manual Variable pool class
poolmvt Manual Variable Temporal pool class
poolmvff Manual Variable First-Fit pool class
prot Generic design of the protection module
protan ANSI implementation of protection module
protli Linux implementation of protection module
protocol The design for protocol inheritance in MPS
protsu SunOS 4 implementation of protection module
pthreadext Design of the Posix thread extensions for MPS
range Ranges of addresses
reservoir The design of the low-memory reservoir
ring The design of the ring data structure
root The design of the root manager
scan The design of the generic scanner
seg The design of the MPS segment data structure
shield Shield abstraction: separate control of collector access and mutator (client) access to memory
sig Signatures in the MPS
splay Design of splay trees
sso1al Stack scanner for Digital Unix / Alpha systems
strategy Collection strategy
telemetry The design of the MPS telemetry mechanism
tests The design of MPS internal tests
thread-manager The design of the MPS thread manager
thread-safety Thread Safety in the MPS
trace Tracer
type The design of the general MPS types
version-library Design of the MPS library version mechanism
version Design of MPS software versions
vm The design of the virtual mapping interface
vman ANSI fake VM
vmo1 VM Module on DEC Unix
vmso VM Design for Solaris
writef The design of the MPS writef function


[RB_2002-06-18](1, 2) "The Obsolete Memory Management Information System"; Richard Brooksby; Ravenbrook Limited; 2002-06-18; <>.

Document History

  • 2002-05-23 RB Created empty catalogue based on P4DTI design document catalogue.
  • 2002-06-07 RB Added a bunch of design documents referenced by the source code.
  • 2002-06-21 NB Remove P4DTI reference, which doesn't fit here. Maybe one day we'll have a corporate design document procedure.
  • 2002-06-24 RB Added fix, object-debug, thread-manager, and thread-safety.
  • 2007-02-08 RHSK Added message-gc and shield.
  • 2007-06-12 RHSK Added cstyle.
  • 2007-06-28 RHSK Added diag.
  • 2008-12-04 RHSK Added tests.
  • 2008-12-10 RHSK Correct description of message-gc: gc begin or end.
  • 2012-09-14 RB Added link to critical-path
  • 2013-05-10 RB Fixed link to sig and added guide.hex.trans
  • 2013-05-22 GDR Add link to keyword-arguments.
  • 2013-05-25 RB Replacing "cstyle" with reworked "guide.impl.c.format".
  • 2013-06-07 RB Converting to reST. Linking to [RB_2002-06-18].
  • 2014-01-29 RB The arena no longer manages generation zonesets.
  • 2014-01-17 GDR Add abq, nailboard, range.