Previous Topic: 2.2.4.2 MVS Virtual Storage OverviewNext Topic: 2.2.4.2.2 MVS Working Set Determination


2.2.4.2.1 MVS Virtual Storage Layout

This section defines the different portions of MVS virtual
storage. (The basic reference for this material is the
Initialization and Tuning Guide.) Real storage management
considerations specific to each area are included following
the description of each section.

SYSTEM QUEUE AREA (SQA and Extended SQA)

Generally speaking, the system queue area (SQA) is an area
containing global system control blocks.  At system
initialization, a minimum of 64 pages are allocated to SQA.
A number of additional segments may be added by PARMLIB or
SYSGEN options.  These parameters specify the upper limit on
the number of frames that will be allocated to SQA. Real
frames are allocated as required.  SQA is fixed storage
acquired and freed by various MVS components (for example,
SRM, RSM, VSM, ASM, ENQ/DEQ). If the system requirement for
SQA exceeds the amount of pages specified by the SQA
parameter, the system attempts to allocate virtual SQA from
the common service area (CSA).

In MVS/370, if the amount remaining for allocation purposes
falls below 6 pages, the creation of new address spaces is
suspended.  In later systems the threshold is 8 pages below
16 MB.

You should monitor the size of SQA on a long-term basis for
memory planning considerations.  System upgrades,
maintenance, and new program products may all increase the
size of SQA.  You should also review the SQA on a daily basis
to ensure there are no SQA growth problems.

SQA pages are allocated from the system preferred area if
possible.  If preferred area pages are not available, and if
all attempts to make a page frame available (both by page
stealing and page relocation) have failed, then the
reconfigurable storage (storage available to be assigned to a
processor that is varied offline in a multiprocessor) is
reduced by one storage unit (a processor-dependent value, 4
MB on a 3081) and the storage unit is marked as being part of
the preferred area.  As a last resort, a page is allocated
from the V=R area.

PAGEABLE LINK PACK AREA (PLPA and Extended PLPA)

The Pageable Link Pack Area contains the code for SVC
(supervisor call interruption) routines, access methods, and
other system routines.  A packing algorithm is used during
PLPA initialization to minimize fragmentation of this area.
In addition, a packing list should be provided to minimize
the working set for PLPA by placing high activity modules, or
modules that are used together, in the same page.

Expected sizes of PLPA range from 2 to 4 MB. In systems with
virtual space sizing problems, the removal of unused modules
from PLPA offers the potential for large gains.  A
field-developed program (FDP) that provides LPA analysis, MVS
LPA Optimizer, SB21-3011, is available to help with this
process.

MODIFIED LINK PACK AREA (MLPA and Extended MLPA)

The modified link pack area can be used to temporarily
include reentrant modules from the linklist libraries in the
PLPA.  The intent is to provide a testing capability.  The
MLPA is serially searched after the FLPA list, but prior to
the LPA directory search.  The LPA directory searches for
PLPA modules with a hash algorithm.  Thus, a long and
"permanent" MLPA list negates the benefits of the more
efficient PLPA lookup.

A large MLPA list also causes excessive dispatching overhead
because each MLPA search/update requires the CMS lock.  A
long MLPA list also increases SQA size, because a Contents
Directory Entry (CDE) and Extent List (XTLST) are required
for each entry.  The list of modules to be included in MLPA
is in a member of SYS1.PARMLIB, IEALPAnn.  Modules may be
included from any linklist library.  When modules are
included from libraries other than SYS1.LPALIB, SYS1.SVCLIB,
or SYS1.LINKLIB, use SYS1.LINKLIB as the data set name for
the module.

FIXED BLDL LIST (BLDLF)/PAGEABLE BLDL LIST (BLDL)

A BLDL list is an in-storage copy of all, or a portion of,
the directory for a linklist data set.  The fixed BLDL list
should point to modules that are frequently used but cannot
be placed in PLPA because they are not reentrant or because
their size and/or frequency of use do not justify placement
in PLPA or MLPA.  Either a BLDLF or BLDL list may be defined
in MVS/370.  In later systems, the BLDL/BLDLF lists have been
eliminated.

The BLDL list should also include modules that are referenced
by few address spaces and modules that are infrequently used
by many address spaces.  The primary purpose of the BLDL list
is to reduce the I/O overhead from linklist directory
lookups.  There is no advantage in specifying a pageable BLDL
list.  The BLDL list is searched after the resident lists
(FLPA, MLPA, and PLPA), but before the linklist library
directories are searched.

Establishing the content of a BLDL list is a time-consuming
task that does not address shifts in the character or volume
of the system's workload.  For example, a BLDL list designed
to optimize TSO work is not of much use at night when the
production batch is run.  A better solution to this problem
may be to use one of the dynamic BLDL packages that change
the content of the list based on frequency of module use.

The size of a BLDL list is not an issue as it requires very
little storage.

SYSGEN PREFIX STORAGE AREA (PSA)

The prefix storage area (PSA) represents the first 4K of
storage starting at address 0.  There is one PSA for each
processor on a multiprocessor (MP) or dyadic processor
(3081).  The PSA generally contains CPU-dependent, hardware-
related information.  For systems with multiple processors,
an uninitialized copy of the PSA is allocated to initialize
the PSA for each CPU brought online after system
initialization (IPL).  There is no extended PSA allocated
above the 16 megabyte line.

COMMON SERVICE AREA (CSA and Extended CSA)

The Common Service Area (CSA) contains pageable and fixed
data areas that must be addressed by more than one address
space.  The determination of whether a CSA frame is pageable
or fixed is based on which virtual storage subpool the area
is to be allocated from.  Subsystems such as TCAM, VTAM,
JES3, HSM, and IMS use large amounts of CSA to pass data from
one address space to another.  The virtual size of CSA is a
consideration if there are problems with the size of the
private area.

LOCAL SYSTEM QUEUE AREA (LSQA and Extended LSQA)

The Local System Queue Area (LSQA) is allocated from the
private area and is fixed in storage while the address space
is resident.  It contains local system control blocks.  LSQA
is allocated from the system-preferred area following the
same scheme described for SQA allocation.  The LSQA for each
address space is unique.  The sum of LSQA allocations for
address spaces that are resident represents a block of fixed
pages that is not available for demand paging.  There are two
ways to minimize the amount of storage used by the LSQAs in a
storage-constrained system.  First, reduce the system MPL.
Second, limit the number of non-swappable address spaces.

SCHEDULER WORK AREA (SWA and Extended SWA)

The scheduler work area (SWA) is a pageable area allocated at
the top of the private area that contains control blocks that
exist over the life of the address space.  The SWA eliminates
the job queue that existed as a direct access data set in
earlier IBM operating systems.

There are no real storage considerations associated with the
SWA.  The only virtual storage consideration is that this
area is in the user private areas.

SUBPOOLS 229/230 (and Extended 229/230)

The subpools 229/230 area contains pageable space for system
control blocks within a virtual address space.  These
subpools are used to provide data areas that may be
referenced by MVS components with an appropriate storage
protect key.

The MVS/SP Tuning Cookbook recommends that LSQA allocations
that do not need to be fixed be made from these areas
instead.  For systems that are severely memory-constrained,
this may provide some temporary relief.  Because system code
modification is required, and this change may impact
installation exits that may reference the control blocks,
this should be evaluated against the other ways to make more
real storage available.

SYSTEM REGION

The System Region is reserved for use by the address space
management functions of MVS.  It comprises the bottom 16 KB
of each private address space other than the Master Scheduler
address space.  In the Master Scheduler address space, the
system region is a maximum of 200 KB.  In later systems there
is no extended version of this area.

PRIVATE USER REGION (Private and Extended Private)

The Private User Region contains user code and data.  In
MVS/370 systems, its virtual size ranges from 5 (or less) to
12 MB, depending on the size of the other areas
comprising the virtual space.  In current systems, with a
virtual address space of 2 GB, its size is considerably
larger than that found in MVS/370.

The minimum acceptable size for the private area is
determined by installation needs.  For systems that are
having problems with the size of the private area, scaling
down the ASM configuration, reducing the virtual size of
PLPA, and minimizing the number of concurrent address spaces
is required.

FIXED LINK PACK AREA (FLPA and Extended FLPA)

The Fixed Link Pack Area (FLPA) is intended for modules that
execute more effectively when page-fixed.  In MVS/370
systems, the fixed link pack area is an extension of the
nucleus.  Its size is included in the nucleus figure reported
by the Real Storage Usage Report for MVS/SP 1.3 systems.  In
current systems, it is allocated separately and is no longer
an extension of the nucleus.

For storage-constrained systems, only essential modules
should be kept in this area.  Because the paging algorithms
normally keep frequently used modules in real storage, this
area should be used only to hold modules that are not
frequently used but are needed for fast response to some
terminal-oriented action.

Modules are loaded into the FLPA area in the order specified
by the IEAFIXnn member of SYS1.PARMLIB.  Thus it is important
to minimize the amount of space lost to fragmentation.  One
method of doing this is to order the fix list by descending
module size.

NUCLEUS and Extended Nucleus

The nucleus contains the nucleus load module and some key
control blocks.  The IPL extensions are discussed separately,
so this discussion is limited to the contents of the base
nucleus.

From the view of recovering real storage from the nucleus,
the I/O generation should be reviewed periodically to remove
unit control blocks (UCBs) for devices that are no longer
used.  Because the nucleus high address is rounded to a
segment boundary (64K) in MVS/370 systems, a larger than
expected amount of storage may be recovered.  On the other
hand, in MVS/370 systems, you may find that additional
modules may be added to the FLPA list, or the BLDL list may
be extended "for free" due to the already existing dead space
that results from this rounding.

In later systems, because the BLDL list does not exist and
because the FLPA is allocated separately, this possibility
for using the wasted space does not exist.

After the installation of upgrades or system maintenance, you
should review the impact on the size of the nucleus and all
fixed areas.  For example, after the addition of more real
storage, the size of the nucleus increases, because the page
frame tables are in the nucleus area.  Addition of 8
MB, for example, would increase the nucleus by 32 KB
(2048 frames and 16 bytes per entry in the frame table).