Glossary
address
A number that specifies the location of a byte in memory.
address range
An area of logical address
space that VM maps to a specific backing store. See also
primary address range and
file mapped address range.
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 data structures, resources, and code segments as
needed.
asynchronous
execution
A mode of invoking a routine. During the asynchronous execution of a
routine, an application is free to perform other tasks. See also
synchronous execution.
backing store
A file in which the Virtual Memory Manager stores the contents of
unneeded pages of memory.
backing volume
See paging device.
bus error
A common synonym for bus error
exception.
bus error exception
The type of exception that is raised when the processor is unable to
access an address. See also exception.
bus error
exception stack frame
The type of exception stack
frame that is created when the processor takes a bus error.
bus error handler
The system software responsible for handling
bus error exceptions. Under VM,
the bus error handler is also the page
fault handler.
cache
A mechanism whereby frequently accessed parts of a data structure are
held in the fastest storage mechanism, while infrequently are held in
the slowest. Caches help to improve
overall performance while minimizing the cost of the storage system.
cache miss
A cache miss occurs when the cache must fetch a piece of data from
the slower storage device.
callback routine
A routine whose address you give to the system so that it can be
executed as part of the operation of some other routine.
completion routine
A routine that is executed when an asynchronous call to some other
routine is completed.
Condition Code Register
(CCR)
A 680x0 register that holds the results of comparison operations.
This register is not privileged, but is only available on 68010 and
higher processors. PowerPC-based Mac OS systems emulate this
register. See also privileged
register and Status Register.
deferred task
A task that is deferred until interrupts are enabled. Deferred tasks
are implemented by the Deferred Task Manager and allow interrupt
handlers to postpone length calculations until interrupts are
enabled, thereby reducing system interrupt latency. Do not confuse
this with a deferred user
function.
deferred user
function
A callback routine whose execution has been deferred until paging is
safe.
direct memory access
(DMA)
A technique for transferring data in or out of memory without using
the processor. DMA devices are typically programmed using
physical addresses.
disable user code
User code is any code that is allowed to
cause a page fault. When page faults are
not safe, VM disables user code by deferring its operation using a
deferred user function.
DMA
See direct memory access.
double page fault
A page fault that occurs while the Virtual Memory Manager is already
handling another page fault. Double page faults are fatal. See also
page fault and
fatal page fault.
exception
A special condition inside the microprocessor that causes it to halt
processing application execution and start executing an exception
handler. Exception have a variety of causes, but the ones pertinent
to VM are interrupts,
privilege violation
exceptions and bus error
exceptions. All exceptions cause the processor
(the emulated 680x0 processor on PowerPC) to
switch to supervisor mode.
exception handler
A special system software routine that is responsible for handling
exceptions by either a) recovering from the exception, b) terminating
the process that caused the exception, or c) halting the system. See
also bus error handler.
exception stack frame
A block of data placed on the stack automatically by the processor
when an exception occurs. See also stack
frame.
exception vector table
A table that contains the logical address of the
exception handler for each type of
exception.
fatal page fault
A page fault that could not be handled
by the page fault handler. A
fatal page fault can be either a double
page fault, a
resource constraint
fatal page fault, or a true
fatal page fault.
file mapped address
range
An address range whose backing store is
a CFM container. See also primary
address range.
file mapping
The process of using a file's data fork as the virtual memory
backing store. File mapping is used by
the Mac OS to load CFM containers without consuming the
Process Manager heap.
file mapping space
A large area of the logical memory
map that is reserved for file mapping.
heap
An area of memory in which space is dynamically allocated and
released on demand, using the Memory Manager. See also
system heap,
Process Manager heap, and
application heap.
held
After you hold memory, it is held.
hold
To temporarily prevent a range of logical memory from being paged out
by the Virtual Memory Manager.
interrupt
A special kind of exception triggered by
some external source, such as the completion of an I/O operation, or
the expiration of a timer.
interrupt stack
A stack that is held so that the processor can
create an exception stack frame
with no possibility of a page fault. This
is especially important when the processor is creating a
bus error exception stack
frame caused by a page fault. If the processor takes a page fault
while creating an exception frame, it unconditionally halts.
Interrupt Stack Pointer
(ISP)
A 680x0 register that points to the top of the
interrupt stack. The 680x0
automatically uses to the ISP whenever it is in
supervisor mode. See also
User Stack Pointer.
lock
To temporarily prevent a range of logical memory from being paged out
or have its logical to physical mapping changed by the Virtual
Memory Manager. Do not confuse this type of locking with locking a
handle.
logical address
An address used by software. The logical address is
translated into a physical address by the
memory management unit.
logical address
space
A large area of addressable memory dedicated to
virtual memory.
logical memory map
The assignment of the address space on a computer to specific
functions such as RAM, ROM, and memory mapped I/O.
memory above BufPtr
System extensions can allocate memory above BufPtr
at system
startup time. This memory is included in the
primary address
range.
memory management unit
(MMU)
A hardware component (either integrated into the main processor or
provided as a separate chip) that maps
logical addresses to
physical addresses. All 68030, 68040
and PowerPC processors have an integrated MMU. Some computers based
on the 68020 processors have a slot for an optional
Paged Memory Management
Unit (PMMU).
Memory Manager
The part of the Mac OS that dynamically allocates and releases memory
space in a heap.
MMU
See memory management unit.
NuBus
The 32-bit wide synchronous bus used for expansion cards in the
Macintosh II family of computers.
page
The basic unit of memory used in virtual memory. Under System 7-style
VM, pages are 4KB, but you should always use
the system services provided to determine the page size.
page fault
A special kind of bus error exception caused by an attempt to access
code or data in a page of memory that is not currently resident in
RAM. See also fatal page fault.
page fault handler
The system software responsible for handling
page faults. A page fault handler is
responsible for a) determining whether a page fault is
fatal, and b) if it isn't fatal,
satisfying the page fault by fetching the page from disk. See also
bus error handler.
page table
A table in memory that the memory
management unit reads to translate
logical addresses into
physical addresses.
Paged Memory
Management Unit (PMMU)
The Motorola MC68851 chip, used in some 68020 computers to perform
logical-to-physical address translation. See also
memory management unit.
paging
The process of moving data between physical memory and the
backing-store.
paging device
A secondary storage device (disk) that contains a backing store.
PCI
See Peripheral Component
Interconnect.
PEF container
The physical storage area for a CFM code fragment.
Containers can be a file, a section of ROM, or even a resource. See
"Mac
OS Runtime Architectures" for more information.
Peripheral
Component Interconnect
A bus architecture for connecting plug-in expansion cards to a
computer's main processor and memory.
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.
PMMU
See Paged Memory Management
Unit.
primary address
range
An address range that is created when the system starts up, which
encompasses low memory, the system heap
and the Process Manager heap.
This address range is used to simulate the physical memory of a Mac
OS computer running with VM turned off.
privilege violation
exception
An exception that is raised when the
processor tries to do an operation that is not allowed in the current
processor mode.
privileged
instruction
An instruction that can only be executed when the processor is in
supervisor mode.
privileged
register
A register that can only be accessed when the processor is in
supervisor mode.
Process Manager
The part of the Mac OS responsible for starting and stopping
processes, and switching between them.
Process Manager heap
A heap controlled by the
Process Manager wherein
application heaps are allocated.
processor mode
An internal state of the processor that determines the privileges of
the currently executing instructions. On
PowerPC systems, both the emulated 680x0 and the native PowerPC
processors have a processor mode but only the emulated 680x0
processor mode is significant. The native PowerPC processor is
virtually always in user mode. See also
user mode and
supervisor mode.
Program Counter (PC)
A register in the processor that contains the logical address of the
next instruction to be executed. On a PowerPC-based Mac OS computer,
both the emulated 680x0 processor and the native PowerPC processor
have a PC.
RAM
See random-access memory.
random-access memory
(RAM)
Memory whose contents can be changed. The RAM in a Mac OS 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 Mac OS computer
contains routines for the Toolbox and the Operating System, and the
various system traps.
resident
A page that is current in physical RAM is described as being
resident. Note that memory that is held is
resident, but not vice versa.
resource
constraint fatal page fault
A page fault that is fatal because of a
resource constraint. For example, a page fault that happens when the
paging device is busy is a fatal because
VM needs to read the paging device in order to satisfy a page fault
and Mac OS paging devices are only capable of handling one request at
a time. See also fatal page fault.
ROM
See read-only memory.
stack
An area of memory that is used to store temporary information. See
also interrupt stack.
stack frame
The area of the stack used by a routine for its parameters, return
address, local variables, and temporary storage.
stack pointer
A pointer to the top of the stack.
Status Register (SR)
A 680x0 register that holds both the results of comparison operations
and a number of other processor control bits. One of these bits holds
the current processor mode. This
register is available on all 680x0 processors, but it privileged on
the 68010 and higher. PowerPC-based Mac OS systems emulate this
register. See also privileged
register and Condition Code
Register.
supervisor mode
The processor mode that allows
execution of privileged
instructions and access to
privileged registers. See also
user 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. See also asynchronous
execution.
system heap
An area of memory reserved for use by the operating system.
Under the current System 7 VM implementation, VM
holds the entire system heap, although you should still explicitly
hold system heap memory that you know needs to be held. See
also application heap and
Process Manager heap.
temporary memory
Memory allocated outside an application
heap that may be available for occasional short-term use.
Temporary memory is actually allocated in the
Process Manager heap.
thrashing
The state at which the computer spends more time
paging than it does executing useful code.
Thrashing occurs when the working set of
all active processes exceeds the physical pages available. This might
be because too many processes are running, or because a process
reduced the number of physical pages available by injudiciously
holding too much memory.
true fatal page
fault
A fatal page fault that occurs for a good reason, such as a disk
error on the paging device. See also
fatal page fault.
unlock
To allow a previously locked range of pages to be
paged out. Do not confuse this type of locking with unlocking a
handle.
user code
Code that is allowed to cause page faults.
VM defers the execution of user code while paging is not safe to
avoid fatal page faults.
user mode
The processor mode that forbids
execution of privileged
instructions and access to
privileged registers. Any attempt
to do so will result in a
privilege violation
exception. VM emulates some privileged instructions so that
programs that use them continue to operate under VM. See also
supervisor mode.
user stack
A stack that is used by normal application
processing. See also interrupt stack.
User Stack Pointer
(USP)
A 680x0 register that points to the top of the user stack. The 680x0
automatically uses the USP whenever it is in
user mode. See also
Interrupt Stack Pointer.
Vector Base Register
(VBR)
A 680x0 register that points to
exception vector table.
virtual memory (VM)
A technique for providing a logical
address space that is larger than the physical memory installed
in the computer. The Virtual Memory
Manager does this by paging infrequently
used code and data to a paging device.
Virtual Memory
Manager
The part of the Mac OS that provides virtual memory.
VM
See virtual memory and
Virtual Memory Manager.
VM-immune
A device driver that can be ignored by virtual memory. A VM-immune
driver must not be a paging device or
use hardware interrupts.
working set
The set of pages that a process reads or writes in its typical
operation.
Back to top
Back to Main Table of
Contents
Downloadables

|
Acrobat version of this Note (52K)
|
Download
|
Back to top
|