Central storage frames and auxiliary storage slots, and the virtual
storage pages that they support, are managed by separate components of z/OS®.
These components are known as the real storage manager (not central storage
manager), the auxiliary storage manager, and the virtual storage manager.
- Real storage manager
- The real storage manager or RSM keeps track of the contents
of central storage. It manages the paging activities– such as page-in, page-out,
and page stealing– and helps with swapping an address space in or out. RSM
also performs page fixing, which is marking pages as unavailable for
stealing.
- Auxiliary storage manager
- The auxiliary storage manager or ASM uses the system's page
data sets to keep track of auxiliary storage slots. Specifically:
- Slots for virtual storage pages that are not in central storage frames
- Slots for pages that do not occupy frames but, because the frame's contents
have not been changed, the slots are still valid.
When a page-in or page-out is required, ASM works with RSM to locate
the proper central storage frames and auxiliary storage slots.
- Virtual storage manager
- The virtual storage manager or VSM responds to requests
to obtain and free virtual storage. VSM also manages storage allocation for
any program that must run in real, rather than virtual storage. Real storage
is allocated to code and data when they are loaded in virtual storage. As
they run, programs can request more storage by means of a system service,
such as the GETMAIN macro. Programs can release storage with the FREEMAIN
macro.
VSM keeps track of the map of virtual storage for each address space.
In so doing, it sees an address space as a collection of 256 subpools,
which are logically related areas of virtual storage identified by the numbers
0 to 255. Being logically related means the storage areas within a subpool
share characteristics such as:
- Storage protect key
- Whether they are fetch protected, pageable, or swappable
- Where they must reside in virtual storage (above or below 16 megabytes)
- Whether they can be shared by more than one task
Some subpools (numbers 128 to 255) are predefined by use by system
programs. Subpool 252, for example, is for programs from authorized libraries.
Others (numbered 0 to 127) are defined by user programs.