diff --git a/mps/manual/wiki/glossary.html b/mps/manual/wiki/glossary.html index 7291412aefd..a43bfeb62b7 100644 --- a/mps/manual/wiki/glossary.html +++ b/mps/manual/wiki/glossary.html @@ -86,9 +86,75 @@ memory for an allocation point. + +

Pieces of memory

+ +

Pools getting raw memory from the Arena

+

This memory will be used for client objects. + There are two interfaces: + a high-level "segment" interface, + and a simpler "arena memory" interface.

+
+
segment (internal)
+
+

= a contiguous piece of memory of arbitrary size, + with associated properties for participating in garbage + collection (see SegStruct).

+

A pool may call SegAlloc() to request a segment from the arena. + The segment is the unit of pool-to-pool and pool-to-MPM + interaction for GC.

+

Design: design/seg.

+

Interface: SegAlloc() et al in mpm.h.

+

Historical note: before 'sunset on segments' (1999-11-18, change 21000) a + segment was a VM page.

+
+ +
arena memory (internal)
+
+

= a contiguous piece of memory of arbitrary size, + returned by ArenaAlloc()

+

A pool may call ArenaAlloc() to request raw memory from the + arena. This is a simpler interface than segments, suitable + for simple pools that do not participate in garbage collection, + pools used internally by the MPM, etc.

+

(Note: this ArenaAlloc() interface is sometimes + called the "tract" interface).

+
+
+ +

Pools getting memory for administrative use

+

This memory will be used for the pool's administrative + datastructures, such as allocation + tables.

+
+
control memory (internal)
+
+

Pools use ControlAlloc() and ControlFree() to obtain + or free control memory.

+
+
+ +

How the arena handles memory

+

See tract.c.

+
+
chunk (internal)
+
+

= a contiguous (I think) piece of address space that has + been reserved (I think) by the arena

+

arena->primary points to the arena's first chunk

+
+ +
page (internal)
+
= unit of granularity of arena allocation; object corresponding to one operating-system VM page
+ +
tract (internal)
+
= a page that is allocated to a pool
+ +
+

Other terms:

-
Foreign code (mps.h)
+
foreign code (mps.h)
From the MPS client's point of view, foreign code is external code (outside the client and MPS), which is not aware of and does not cooperate with the MPS. @@ -104,7 +170,7 @@ designed for this.
-
Format (mps.h)
+
format (mps.h)
A collection of client-implemented Format Methods, which MPS uses to ask the client questions about objects. See GC.
@@ -114,7 +180,7 @@ See design/type/#attr. - +
Ring (internal)
A Parent node, linked to zero or more Child nodes. Used throughout MPS internals. See @@ -133,6 +199,7 @@ 2006-06-21 RHSK Scope of terms; client/mutator, ap/buffer. 2006-07-03 RHSK Ring. 2006-08-02 RHSK Foreign code. Format (clarify). + 2006-08-14 RHSK Pieces of memory: chunk, segment, tract, page