Virtual address spaces in Mach define the valid virtual addresses that can be used by threads under execution in the task that owns that address space. Each task has only one address space and each address space belongs to only one task. So when we want to name an address space (for example, in the Mach API) we name it by the task it belongs to.

These address spaces are divided into pages. Each page has individual properties like access rights (read / write / execute), inheritance attributes (no inheritance / copy / share) and some other system properties. Page manipulation is optimized to help moving large blocks of data from one address space to another, for example when one thread provides data to another thread -- client / server technology.

Memory ranges of pages that can be controlled as a whole are called memory objects.

Wired pages are those that cannot be paged out. For example, Mach itself is a task with its own address space and threads, and all of its pages are wired.

Precious pages are those that must not be discarded silently when they are clean and memory is needed. For example, a memory manager that shares memory across a network could not restore a page if it is silently discarded because it is unmodified. This is not valid for the well-known pager managers that use disks as backing store.