REAL STORAGE ALLOCATION AND PAGE MANAGEMENT DMKPTRAN via the TRANS KACRO per paging request as determined by DiT created program interrupt (page or segment exception) DMKPTR RESTART ---aeturn to-caller, if virtual address in R1 is beyond range of user's
directory specified storage size. QMKPTR, Check page residency via LRA (LOAD REAL ADDRESS) operation. For resident page, lock page in storage (if appropriate). 12!1KP!!!, GET!!!QQ Set real address in R2, make PAGTABLE entry valid. Set cc=O and exit
to caller. INT!!!! For page not resident but in transit (SWPTABLE, SWPFLAG), place
virtual machine in locate mode. Locate CPEXBLOK for the real page requested and chain another CPEXBLOK with a return address of TRANRETN, to the same chain.
DMKPTR, TRANRETN no longer in transit, restore registers and return to RESTART for processing, DMKPTR, GETPAGE ---aeclaims-;-page on FREELIST (CORETABLE). DMKPTR, DOlO ---Par page-that is not in storage, do setup to read in the page. For DEFER option passed in R2, build CPEXBLOK to return to user after
page is in storage. PA§!! After the page is read into storage DMKPAGIO process, remove the user
from the wait state and update the lock count (if required). DMKPTR, GETRADD
-- Set reel-address in R2, make PAGTABLE entry valid. Set cc=O and exit
to caller. DMKPTRFR ---Per-the caller's code in R2, obtain a page frame - DMKPTR, GETFREE ---obtain-page-frame via CORTABLE reference then exit to caller. DMKPTRFE via CPEXBLOK, check page availability via flush list (DMKPTRFL), if none available steal a user's page. Q1!KP!!i, The SELECT routine is entered to replenish the FREELIST from the
flush list or user's pages that have not been referenced. QMKPTR!:! Process pages to be returned by chaining them to the FREELIST. On page returns DEFER page requests are processed first. In locking a page in Real Storage (address in R2), add 1 to lock
count; if previously locked, and exit to caller. If not previously
locked, unchain the CORTIBLE entry from the user's page list and set
the lock count to 1. R!!!! To unlock
lock count
list prior
a locked page, reduce lock count by 1 and exit. If the
is now equal to zero, place CORTABLE entry on user's page
to exiting from routine. CP Method of operation and Program Organization 1-203
READING/WRITING A DASD PAGE TO/FROK VIRTUAL STORAGE DrtKRPAGT via SYC call to read DASD page into storage. DKKPGTPR ---aelease DASD space that was previously occupied by this virtual
storage page. Remove resident page frames from the user list. DKKPTRFT ---Place these page frames on the free list. Update the SWPTABLE with disk address in RO. DKKPTRAN - Bring the page into storage. QKKRPA, Put real storage address of the virtual page is passed back to the
caller in R2. DKKRP1T ----Entered via SYC call to write out a page to DASD storage. DKKPTR1N Locate the page to be moved and lock it. DKKRPAPT -----store all r.egisters in CPEXBLOK and flag CPEXRO as a write request. DKKPAGIO ---Write the page. Decrement page wait count. If zero results, take user out of page
wait. DKKPTRUL ---unlock the page frame. Return to caller. D!KYATAB -- Entry via BALR when an EC mode virtual machine needs a shadow table
generation and update or purge operation. Get storage to create shadow table, Flag VKBLOK to show shadow table
existance. D!KY1TBC -- Free-shadow page, segment and copy segment, when user leaves EC mode or alters CR o. DKKYATRN to perform third level to first level translations and third
level translations to second level address translations. Use TRANS macro to access virtual segment and page tables to get the virtual
page into real storage. D!KY1TLl - Using the TRANS macro to access the virtual segment and page tables,
pass the resulting page and displacement to DKKPRVLG. DKKY1TPX ----Invoked by D!KPRGIN when a paging exception is received for an EC mode virtual machine. Perform set up operation and develop page table address. Get the page. 1-204 IBM Y8/370 System Logic and Problem Deteraination--Volume 1
Previous Page Next Page