ALLOCATION MANAGEMENT Real storage space above the Control Program nucleus is made up of the dynamic paging area and the free storage area. Page frames (allocation
space in real storage for a page of data) in the dynamic paging area are
allocated to virtual machines and the control program to satisfy paging
requests. Blocks of storage, requested by virtual machines and CP for
working storage, are allocated from the free storage area. NORMAL PAGING REQUESTS If a program interruption is caused by a normal paging request (not from a virtual Machine that is running in Ee mode with translation on)w DMKPRGIN determines whether a segment or page translation error has
occurred. If one of these errors occurred, an invalid address
interruption code is set, and the interruption is reflected to the
virtual machine supervisor. If a segment or page translation error has
not occurred, the virtual machine's current PSW is updated from the program old PSW (PROPSW), the address of the current VMBLOK is placed in
register 11, and DMKPTRAN is called to obtain the required page. When the paging operation is completed, control is returned to DMKDSPCH. When operating in the CP relocate environment, each virtual machine's virtual storage space is described by two sets of tables. One set, the segment and page tables, describes the location and
availability of any of the virtual machine's virtual pages that may be resident in real storage. Locations in these tables are indexable
by virtual address, and the entries contain index values that
reference corresponding real storage ·addresses. In addition, each
table entry contains an indication of whether the corresponding
virtual page is available to the user in real storage. These tables are referenced directly by the DAT feature when the virtual machine's program is running. The second set of tables, called swap tables, is a map of the
locations of the virtual machine's pages on the DASD devices that comprise the system's paging or auxiliary storage. The DISD addresses in these tables can either represent the source of a page
of virtual storage (the location to which a page may be moved if
necessary) or a du.my address, indicating that the given page has not
yet been referenced and, thus, has a value of binary zeros.
The swap tables are arranged in a format indexable by virtual storage
address. In addition to containing the address of a page, each entry
contains flags and status bytes that indicate such information as: The storage protection keys to be assigned to the page when it is made resident. Whether the page is currently on its way into or out of the system (in transit), etc.
These tables are not referenced directly by the hardware
page and segment tables, but are used by paging manage.ent user pages that are needed to execute a program. as are the
to locate CP Introduction 1-105
Virtual storage aanagement is done by the technique known as de.and
paging. This means that a page of virtual storage is not "paged in" froa its DASD auxiliary storage area until it is needed. CP does not
determine the pages required by a virtual aachine before the virtual machine executes. A demand for a page can be .ade either i.plicitly by the virtual lIachine or explici tl y by CP. An implicit demand for a page is made when a program atte.pts to
reference a page that is not available in real .ain storage. This attempt causes a program interruption with the interruption code
indicating a page or segment exception. Upon recognition of this
condition, control is passed to the paging manager to obtain a page
frame of real .ain storage and to bring in the desired page. An explicit delland for a page can be made by CP (for exa.ple. in the
course of translating a user's channel program). If, in the process
of translation, CP encounters a CCW that addresses a page that is not
resident in real storage, a call is made to the paging .anager to make the referenced page resident. While the requested page is being fetched, the requesting virtual
machine is unable to continue execution; however, it may be possible to
run other tasks in the system, and CP runs these while the needed page
is being paged in. When the requested page is resident, the virtual machine can be run and is dispatched in its turn.
In addition to demanding pages, virtual machines i.plicitly or
explicitly release page frames of their virtual storage space. Part of
the space may be explicitly released from both real and virtual storage
via a DIAGNOSE instruction that indicates to the control program those
page frames that are to be released. An entire virtual storage is
released when a user loads (via IPL) a new operating systea or logs off from the syste •• CP also has virtual storage associated with it. This space contains CP (solie parts of which need not always be resident in real storage).
and virtual storage buffers for spooling and systea directory
operations. Although CP makes use of virtual storage space for its
execution, it does not run in relocate mode. Thus, nonresident .odules aust be coapletely relocatable.
Real storage manage.ent allocates the system's page fraaes of real
storage to satisfy the demands for virtual pages aade by the syste.'s
virtual lIachines. Efficiency of allocation involves a trade-off; the
paging manager uses only enough processor time to ensure that: The set of virtual storage pages that are resident represent those
pages that are IIOSt likely to be used. A sufficient number of cycles is available to execute virtual aachine
progra.s.
Inefficiency in the first area causes a condition known as thrashing.
which means that frequently used pages are not allowed to re.ain
residant long enough for useful work to be perforaed by or on thea. Thrashing could be aggravated by the paging manager's page fra&e selection algorithm or by a dispatcher that attempts to run more tasks
than the system can handle (the SUII of their storage requirements 1-106 IBM VM/310 System Logic and Problem Deteraination--Voluae 1
Previous Page Next Page