DMKDSP, CKPSi ----Validate-the PSi. DMKVATBC For virtual machine leaving EC mode, clean up the shadow tables. DMKVATMD For--vIrtual machine in BC mode and entering translate mode,
initialize shadow tables. For PSi invalid, send error message to virtual machine, and place
user in CP mode. If disconnected and invalid PSi, log off user. DMKDSP, DISPATCH ---Coiplete-processing for current user. Call DMKSCHDL if necessary to
alter user's dispatching priority. DMKDSP, CKCPSTAK ---process--i-stacked request. First check the stack of IOBLOKs and TRQBLOKs. If system is not extending, unstack normally. Otherwise, only unstack paging or PCI IOBLOKs. DMKDSP, WINDOW ---aefore-exaiining the stack of CPEIBLOKs, open a window for interrupts
if the system is not extending. DMKDSP, Check the stack of CPEIBLOKs. If the system is extending, only
unstack those blocks that will allow the extend to complete. If the system is not extending, unstack norMally. If a CPEIBLOK for the
other processor is encountered, give up the system lock and signal
the other processor. If no stacked requests can be unstacked, select a user for
dispatching. If the system is locked for running users (such as
during extend), load a wait state. Scan the run list for a
dispatchable candidate. If none is found, load a wait state. If
there is also a runnable user for the other processor, signal the
other processor. If a runnable user is found, set up to dispatch this
user. !2
MKSC 1!Q1
Main entry to aaintain queues of runnable and eligible users and to
alter the user's dispatching status and (when necessary) his
dispatching priority. If the user is now not runnable, but was runnable before, mark the
user as not runnable. If the user is in the eligible list, drop him from the list. If the user is in an idle wait state, drop him from
the queue. CKR!!!! If the user is now runnable, mark him as runnable. If the user was not in Q before, add him to the eligible list. Look through the eligible list for runnable users to add to active
queues. CP Method of operation and Program Organization 1-215
Set a clock compara tor interrupt request. !!KKSCH!i! Reset a clock comparator interrupt request. Dl!KSCHl!D ---Set-up a request block for midnight date change. Process a real interrupt timer request. Process a real CPU timer interrupt. SPOOLING VIRTUAL DEVICE TO REAL DEVICE DMKVSPEI froll DMKVIO to initiate SIO on a spooling device that is
available (not busy and no interruptions pending) DMKVSP, OPEN ---netermine if output device needs to be opened. DMKSPLOV build message control blocks: SFBLOK and VSPCTLBLOK. DMKPGTVG ---ObtaIn a virtual buffer; the address is stored in VSPVAGE. DMKPGTSG ---obt2In a DASD page; the address is stored in VSPDPAGE. DMKVSP, BUILDCTL and the other user, record, and device values plus DMKCVTDT. DMKCVTDT the time stamp and date and stores it in SFBLOK. Generate TAG record at the start of the spool data buffer. DMKYSP, CCiOK
After CCW validity check, data and CCis (if appropriate) are moved to
the work buffer. Trailing blanks are truncated and when the buffer
is full, it is written out to the DASD slot. DMKVSPVP ---On-console spooling, the following occurs:
1. Skip to channel 1 every 60 lines.
2. Write out the system console, spool file buffer every 16 lines.
3. Place the system console in a pseudo closed state for checkpoint
recovery in the event of system failure. When all CCWs are processed, post interruption pending to the VDEVBLOK, VDEVCSW and return control to the user. DKKYSFCO via CP CLOSE command. If device busy, defer close operation by
building CPEIBLOK, stack it and exit to dispatcher. j2MKYSP, PR!lQ1 On device not busy, write final buffer page to DASD storage.
1-216 IBM VM/310 System Logic and Problem Determination--Voluae 1
Previous Page Next Page