One way of thinking of an address space is as a programmer's
map of the virtual storage available for code and data. An address
space provides each programmer with access to all of the addresses
available through the computer architecture.
z/OS® provides each user with a unique address
space and maintains the distinction between the programs and data
belonging to each address space. Because it maps all of the available
addresses, however, an address space includes system code and data
as well as user code and data. Thus, not all of the mapped addresses
are available for user code and data.
Understanding the division of storage areas in an address space
is made easier with a diagram. The diagram shown in Storage areas in
an address space shows how an address space maintains the distinction
between programs and data belonging to the user, and those belonging
to the operating system.
Figure 1. Storage areas
in an address space
Figure 1 shows the major storage
areas in each address space. These are described briefly as follows:
- All storage above 2 GB
- This area is called high virtual storage and is addressable
only by programs running in 64-bit mode. It is divided by the high
virtual shared area, which is an area of installation-defined size
that can be used to establish cross-address space viewable connections
to obtained areas within this area.
- Extended areas above 16 MB
- This range of areas, which lies above the 16 MB boundary but below
the 2 GB boundary, is a kind of "mirror image" of the common area
below 16 MB. They have the same attributes as their equivalent areas
below 16 MG, but because of the additional storage above the 16 MB
boundary, their sizes are much larger.
- Nucleus
- This is a key 0, read-only area of common storage that contains
operating system control programs.
- SQA
- This area contains system level (key 0) data accessed by multiple
address spaces. The SQA area is not pageable (fixed), which means
that it resides in central storage until it is freed by the requesting
program. The size of the SQA area is predefined by the installation
and cannot change while the operating system is active. Yet it has
the unique ability to "overflow" into the CSA area as long as there
is unused CSA storage that can be converted to SQA.
- PLPA/FLPA/MLPA
- This area contains the link pack areas (the pageable link pack
area, fixed link pack area, and modified link pack area), which contain
system level programs that are often run by multiple address spaces.
For this reason, the link pack areas reside in the common area which
is addressable by every address space, therefore eliminating the need
for each address space to have its own copy of the program. This storage
area is below the 16 MB boundary and is therefore addressable by programs
running in 24-bit mode.
- CSA
- This portion of common area storage (addressable by all address
spaces) is available to all applications. The CSA is often used to
contain data frequently accessed by multiple address spaces. The size
of the CSA area is established at system initialization time (IPL)
and cannot change while the operating system is active.
- LSQA/SWA/subpool 228/subpool 230
- This assortment of subpools, each with specific attributes, is
used primarily by system functions when the functions require address
space level storage isolation. Because these areas are below the 16
MG boundary, these areas are addressable by programs running in 24-bit
mode.
- User Region
- This area is obtainable by any program running in the user's address
space, including user key programs. It resides below the 16 MB boundary
and is therefore addressable by programs running in 24-bit mode.
- System Region
- This small area (usually only four pages) is reserved for use
by the region control task of each address space.
- Prefixed Save Area (PSA)
- This area is often referred to as "low core." The PSA is a common
area of virtual storage from address zero through 8191 in every address
space. There is one unique PSA for every processor installed in a
system. The PSA maps architecturally fixed hardware and software storage
locations for the processor. Because there is a unique PSA for each
processor, from the view of a program running on z/OS,
the contents of the PSA can change any time the program is dispatched
on a different processor. This feature is unique to the PSA area and
is accomplished through a unique DAT manipulation technique called prefixing.
Given the vast range of addressable storage in an address space,
the drawing in Figure 1 is not
to scale.
Each address space in the system is represented by an address space
control block or ASCB. To represent an address space, the system creates
an ASCB in common storage (system queue area or SQA), which makes
it accessible to other address spaces.