section, while errors associated with
are discussed later in the section
Recovery".
virtual storage paging operations "Virtual Storage Paging Error DMKPAGIO maintains its own subpool of preformatted paging IOBLOKs.
As I/O operations complete, their IOBLOKs are added to a list of
available blocks; as new blocks are needed, they are taken fro. this
list. If the list is empty, DMKFREE is called to obtain storage for a
new block. DMKPAGIO also periodically calculates system paging
overhead. After 200 pages have been moved (read or written), the
elapsed time for the 200 page moves is computed, and the paging rate is
calculated in page moves per second. The recent paging load, expressed
as the percentage of time that more than one half of the system's pages
were idle due to page-wait, is averaged with the previous load and
re-projected as the expected load for the next interval.
PAGING SUBSYSTEK The paging subsystem has three major components that have resource
optimization algorithms associated with them: I The page replacement and page selection algorithm that manages the I allocation of real storage frames and selects which virtual page to I replace. I An algorithm for the allocation of DASD backing store pages. I An algorithm for ordering the queue of page I/O reqests.
PAGE REPLACEMENT IND PAGE SELECTION ALGORITHM VM/370 is a demand paging system. programs run in virtual storage and
when a storage reference is made to a virtual page not currently in real
storage, a page fault occurs. A page fault is a program interruption
that occurs when a page marked "not in real storage" is referred to by
an acti!e page. This page fault represents a demand for a real storage frame 1n which to place the virtual page. The page replacement algorithm chooses which real storage frame will be allocated to fulfill
such a demand. If all real frames in real storage are occupied by other
virtual pages, a real frame can only be obtained by replacing one of
those virtual pages. The selection of which virtual page to replace is
carried out by the page selection algorithm. The scheduler aids the page selection algorithm by notifying it of
virtual machines that are no longer eligible for dispatching (either
because they have been dispatched, or because they are being held
suspended in the eligible list). The scheduler calls the page reset
routine when a virtual machine is dropped froa a queue and reset routine
when a virtual aachine is dropped from a queue and does not immediately reenter the dispatch list. Under heavy paging loads, it is the
responsibility of the page reset routine to group all in-storage virtual
pages belonging to the virtual machine; it groups them on an available
(or flush) list for easy selection by the page replacement algorithm. The page reset routine cycles through the virtual machine's segment table looking for valid segment entries. When it finds a valid entry,
it turns on the segment table entry invalid flag and the page reset
routine begins to process the page table associated with that segment table entry_ The page table header is timestaaped, and if it is a
1-114 IBM VK/370 system Logic and Problem Determination--Voluae 1
shared segment, the active segment table entry count is decreased. Por a shared segment, if the active count is still greater than zero, no
further processing is done. If the count has decreased to zero, for a
shared segment, processing continues as if it were a private segment. Each page table entry in a segment is then examined for an in-storage
page. If one is found, it has its reference bit reset to zero. In
addition, if the heavy paging condition flag has been set, the page
table entry is aarked invalid, and the real page is placed on the flush
list in last-in-first-out order.
The page replacement/page selection algorithm aust find a real fraBe to
satisfy a demand for a virtual page. It first attempts to satisfy the demand with a page from the flush list. The flush list contains virtual
pages (if any) that belong to virtual machines that are not eligible for
dispatching, and therefore are not being used.
Note: A virtual machine may reenter the dispatch list after its pages
have been placed on the flush list. If the virtual aachine atteapts to
access any of those pages, they will be reclaiaed. The pages are placed
on the flush in last-in-first-out order under the assumption that the
longer they remain on the list, the higher the probability the virtual machine will reenter the dispatch list and reclaia thea.
If no pages are found on the flush list, the selection algorithm examines each virtual page in real storage, searching for an available
page that does not have its reference bit on. It begins the search at
the first available virtual page at the high end of real storage and
searches by descending page address. When it reaches the lowest
available page address, it starts again froa the top of storage. When a
page has been found, that page address minus one is checkpointed. The
next time the selection algorithm is invoked, it will start froa the
checkpointed address. As the selection process proceeds, those pages
that were not selected have their reference bits turned off. When the
selection algorithm is operating in this mode, a virtual page Bust be
referenced at least once per reset cycle (loop around real storage) to
avoid selection. I BACKING STORE ALLOCATION ALGORITHM There are two parts to the algoritha for allocation of a DASD page
record. The first is to find the optiaal device on which to allocate a
record. The second is then to optiBize the record allocation on a
particular device. CP maintains the DASD device chain in two parts. The major part is the
ordering of all devices by type and by the TEMP/PAGE classification.
All PAGE devices are ordered before all TEMP devices. The device type
ordering is: 2305, 3350, 3340, 3330, and 2314. All devices of the saBe type are chained together off the priaary chain. CP atteapts to
allocate a page record on the highest-level device until all devices at
that level are full and then it tries the next lower device type. Within a particular device type, CP allocates records in a round-robin
aanner, attempting to evenly distribute the allocated records. CP Introduction 1-115
Previous Page Next Page