Important: The information in this document is obsolete and should not be used for new development.
Glossary
0-length handle A handle whose associated relocatable block has a logical size of 0 bytes.24-bit addressing The addressing mode in which only the low-order 24 bits of a pointer or handle are used in determining memory addresses.
32-bit addressing The ability of the Operating System to use all 32 bits of a pointer or handle in determining memory addresses.
32-bit clean Said of an application that is able to run in an environment where all 32 bits of a memory address are used for addressing.
A5 world An area of memory in an application's partition that contains the QuickDraw global variables, the application global variables, the application parameters, and the jump table--all of which are accessed through the A5 register.
address A number that specifies the location of a byte in memory.
Address Management Unit (AMU) The
Apple custom integrated circuit in Macintosh II computers that performs 24-bit to 32-bit address mapping.address map The assignment of portions of the address space of a computer to specific devices.
address mapping See address translation.
address space A range of accessible memory. See also address map.
address translation The conversion of one set of addresses into another, corresponding set. For example, software designed for the original Macintosh computers uses only 24 bits for addresses, whereas the Macintosh II and later models have a 32-bit address bus. As a result, the Macintosh II and later models convert (or map) the 24-bit addresses used by the software into the 32-bit addresses used by the hardware.
allocate To assign an area of memory for use.
AMU See Address Management Unit.
application global variables A set of variables stored in the application's A5 world that are global to the application.
application heap An area of memory in the application heap zone in which memory is dynamically allocated and released on demand. The heap contains the application's
'CODE'
segment 1, data structures, resources, and other code segments as needed.application heap zone The heap zone initially provided by the Memory Manager for use by an application and the Toolbox; initially equivalent to the application heap, but may be subdivided into two or more independent heap zones.
application parameters Thirty-two bytes of memory in the application partition that are reserved for system use. The first long word is the address of the first QuickDraw global variable.
application partition A partition of memory reserved for use by an application. The application partition consists of free space along with the application's heap, stack, and A5 world.
application space Memory that's reserved for dynamic allocation by applications.
asynchronous execution A mode of invoking
a routine. During the asynchronous execution
of a routine, an application is free to perform other tasks.backing-store file The file in which the Virtual Memory Manager stores the contents of unneeded pages of memory.
backing volume See paging device.
block See memory block.
block contents The area that's available for use in a memory block.
block header The internal housekeeping information maintained by the Memory Manager at the beginning of each block in a heap zone.
cache See data cache, disk cache, or
instruction cache.callback routine A routine that is executed as part of the operation of some other routine.
compact See heap compaction.
completion routine A routine that is executed when an asynchronous call to some other routine is completed.
concurrent driver A driver that can handle several requests at once.
copy-back cache A cache whose data is written to RAM only when necessary to make room in the cache for data accessed more recently or when the cache is explicitly flushed. See also write-through cache.
current heap zone The heap zone currently under attention, to which most Memory Manager operations implicitly apply.
cushion See memory cushion.
dangling pointer A copy of a master pointer that no longer points to the correct memory address.
data cache An area of memory internal to some microprocessors (for example, the MC68030 and MC68040 microprocessors) that holds recently accessed data. See also instruction cache.
dereference To refer to a block by its master pointer instead of its handle.
direct memory access (DMA) A technique for transferring data in or out of memory without using the CPU.
disk cache A part of RAM that acts as an intermediate buffer when data is read from
and written to file systems on secondary
storage devices.disposed handle A handle whose associated relocatable block has been disposed of.
DMA See direct memory access.
double indirection The means by which the Memory Manager or an application accesses the data associated with a handle variable.
double page fault A page fault that occurs while the Virtual Memory Manager is handling another page fault. See also page fault.
empty handle A handle whose master pointer has the value
NIL
(possibly indicating that the underlying relocatable block has been purged).fake handle A handle that was not created by the Memory Manager.
flush (1) To write data from a cache in memory to a volume. (2) To write data or instructions from a cache in the microprocessor to RAM.
fragmentation See heap fragmentation.
free block A memory block containing space available for allocation.
GB Abbreviation for gigabyte. A gigabyte is 1024 megabytes, or 1,073,741,824 bytes.
global variables See application global variables, system global variables, and QuickDraw global variables.
grow-zone function A function supplied by the application program to help the Memory Manager create free space within a heap.
handle A variable containing the address of a master pointer, used to access a relocatable block. See also pointer.
heap An area of memory in which space
is dynamically allocated and released on demand, using the Memory Manager. See
also application heap.heap compaction The process of moving allocated blocks within a heap to collect the free space into a single block.
heap fragmentation The state of a heap when the available free space is scattered throughout the heap in numerous unused blocks.
heap zone An area of memory initialized by the Memory Manager for heap allocation. A heap zone consists of a zone header, a heap, and a zone trailer.
hold To temporarily prevent a range of physical memory from being paged out by the Virtual Memory Manager.
instruction cache An area of memory internal to some microprocessors (for example, the MC68020, MC68030, and MC68040 microprocessors) that holds recently used instructions. See also data cache.
jump table An area of memory in an application's A5 world that contains one entry for every externally referenced routine in every code segment of the application. The jump table is the means by which the loading and unloading of segments is implemented.
KB Abbreviation for kilobyte. A kilobyte is 1024 bytes.
lock (1) To temporarily prevent a relocatable block from being moved during heap compaction. (2) To temporarily prevent a range of physical memory from being paged out or moved by the Virtual Memory Manager.
logical address An address used by
software. The logical address might be translated into a physical address by the memory management unit.logical size The number of bytes in a memory block's contents.
low-memory system global variables See system global variables.
master pointer A pointer to a relocatable block, maintained by the Memory Manager and updated whenever the block is moved, purged, or reallocated. All handles to a relocatable block refer to it by double indirection through the master pointer.
master pointer block A nonrelocatable block of memory that contains master pointers. A master pointer block in your application heap contains 64 master pointers, and a master pointer block in the system heap contains 32 master pointers.
master pointer flag bits The high-order 8 bits of a master pointer. In 24-bit addressing mode, some of these bits are used to store information about the relocatable block referenced by the master pointer.
MB Abbreviation for megabyte. A megabyte is 1024 kilobytes, or 1,048,576 bytes.
memory block An area of contiguous memory within a heap.
memory-block record A data structure used by the translation parameter block to indicate the starting address and length of a given block of memory. This parameter block is defined by the
MemoryBlock
data type.memory cushion An application-defined threshold below which the application should refuse to honor any requests to allocate memory for nonessential operations.
memory management unit (MMU) Any component that performs address mapping in a Macintosh computer. In Macintosh II computers, it is either the Address Management Unit (AMU) or the Paged Memory Management Unit (PMMU). The MMU function is built into the MC68030 and MC68040 microprocessors.
Memory Manager The part of the Operating System that dynamically allocates and releases memory space in the heap.
memory map See address map.
memory reservation The process of creating a free space at the bottom of the heap for a newly allocated block by moving unlocked relocatable blocks upward.
memory reserve An allocated block of memory in the application heap that is held in reserve and released only for essential operations when memory in the heap is low.
MMU See memory management unit.
nonrelocatable block A block whose location in the heap is fixed. This block can't be moved during heap compaction or other memory operations.
NuBus The 32-bit wide synchronous bus used for expansion cards in the Macintosh II family
of computers.NuBus expansion slot A connector attached to the NuBus in a Macintosh II computer, into which an expansion card can be installed.
original application heap zone See application heap zone.
page The basic unit of memory used in virtual memory.
Paged Memory Management Unit (PMMU) The Motorola MC68851 chip, used in the Macintosh II computer to perform logical-to-physical address translation and paged memory management.
page fault A special kind of bus error caused by an attempt to access data in a page of memory that is not currently resident in RAM. See also double page fault.
paging The process of moving data between physical memory and the backing-store file.
paging device The volume that contains the backing-store file.
partition A contiguous block of memory reserved for use by the Operating System or by an application. See also application partition and system partition.
physical address An address represented by bits on a physical address bus. The physical address may be different from the logical address, in which case the memory management unit translates the logical address into a physical address.
physical size The actual number of bytes a memory block occupies in its heap zone, including the block header and any unused bytes at the end of the block.
PMMU See Paged Memory Management Unit.
pointer A variable containing the address of a byte in memory. See also handle.
processor cache See data cache or
instruction cache.program counter A register in the CPU that contains a pointer to the memory location of the next instruction to be executed.
protected block A block of memory that should not be moved or purged by a grow-zone function.
purge To remove a relocatable block from the heap, leaving its master pointer allocated but set to
NIL
.purgeable block A relocatable block that can be purged from the heap.
purge-warning procedure A procedure associated with a particular heap zone. The Memory Manager calls this procedure whenever a block is about to be purged from the zone.
QuickDraw global variables A set of variables stored in the application's A5 world that contain information used by QuickDraw.
RAM See random-access memory.
RAM disk A portion of the available RAM reserved for use as a temporary storage device.
A user can configure a RAM disk or disable it altogether using controls in the Memory
control panel.random-access memory (RAM) Memory whose contents can be changed. The RAM in a Macintosh computer contains exception vectors, buffers used by hardware devices, the system and application heaps, the stack, and other information used by applications.
read-only memory (ROM) Memory whose contents are permanent. The ROM in a Macintosh computer contains routines for the Toolbox and the Operating System, and the various system traps.
reallocate To allocate new space in the heap for a purged block and to update the block's master pointer to point to its new location.
reentrant driver A driver that can be interrupted while servicing a request, service
the new request, and then complete the original request.relative handle A pointer to a block's master pointer, expressed as an offset relative to the start of the heap zone rather than as an absolute memory address. A block's relative handle is contained in its block header.
release (1) To free an allocated area of memory, making it available for reuse. (2) To allow a previously held range of pages to be movable in physical memory.
relocatable block A block that can be moved within the heap during compaction.
reservation See memory reservation.
reserve See memory reserve.
ROM See read-only memory.
size correction The number of unused bytes at the end of the block, beyond the end of the block's contents.
stack An area of memory in the application partition that is used to store temporary variables.
stack frame The area of the stack used by a routine for its parameters, return address, local variables, and temporary storage.
stale data Data in the microprocessor's data cache whose corresponding value in RAM has changed. You might need to flush the data cache to avoid using stale data.
stale instructions Instructions in the microprocessor's instruction cache whose corresponding value in RAM has changed. You might need to flush the instruction cache to avoid using stale instructions.
strip an address To clear the high-order byte of a 24-bit address, making it usable in 32-bit mode.
synchronous execution A mode of invoking a routine. After calling a routine synchronously, an application cannot perform other tasks until the routine is completed.
system global variables A collection of global variables stored in the system partition.
system heap An area of memory in the
system partition reserved for use by the Operating System.system heap zone The heap zone provided by the Memory Manager for use by the Operating System; equivalent to the system heap.
system partition A partition of memory reserved for use by the Operating System.
tag byte The first byte of a block header.
temporary memory Memory allocated outside an application partition that may be available for occasional short-term use.
translation table A data structure used by the
GetPhysical
function to indicate which physical blocks correspond to a given logical block. This parameter block is defined by theLogicalToPhysicalTable
data type.unlock (1) To allow a relocatable block to be moved during heap compaction. (2) To allow a previously locked range of pages to be paged out.
unpurgeable block A relocatable block that can't be purged from the heap.
virtual memory Addressable memory beyond the limits of the available physical RAM. The Operating System extends the logical address space by allowing unused applications and data to be stored on a secondary storage device instead of in physical RAM.
Virtual Memory Manager The part of the Operating System that provides virtual memory.
write-through cache A cache whose information is immediately written to RAM whenever that information changes. See also copy-back cache.
zero-length handle See 0-length handle.
zone header An area of memory at the beginning of a heap zone that contains essential information about the heap, such as the number of bytes free in the heap and the addresses of the heap's grow-zone function and purge-warning procedure.
zone pointer A pointer to a zone record.
zone record A data structure representing a heap zone.
zone trailer A minimum-sized free block marking the end of a heap zone.