DISPATCHING AND SCHEDULING DMKDSPA for fast reflection activity. If the user is no longer
runnable, or if the system is extending, the fast reflect path is not
continued and processing continues at the main dispatcher entry
point. DMKDSP, UPVIRT is running virtual timers, update and test the user's
virtual timers. If the user is still dispatchable, build the new RUNPSW from either IOOPSW or PROPSW and redispatch the virtual machine. DMKDSPB to dispatcher when the user's PSW has been external to DMKDSP. DMKDSP, CKPSW ---verifY-the PSW change. DMKDSP, CKPEND ---Unstack-any pending interrupts for the user (if enabled). DMKDSPCH -Noriil dispatch entry after each interrupt handler has finished
processing, and after each CPEXBLOK, I/O request and external
interrupt has been serviced. DMKDSP, RUNTIME ---rf-CPSTATOS- indicates return from running a user (CPRUN on), first
ensure that supervisor time is being charged to RUNUSER. Check the
user for time-slice end or queue-slice end, store the time remaining
in the time-slice, and update processor problem state time. Also
update virtual timers if running. DMKDSP, WAITIME ----If-CPSTATOS-indicates return from wait (CPWAIT on), first ensure that
supervisor time is being charged to the system. Determine the type of
wait (I/O wait, page wait, or idle wait) and save the appropriate new
wait time value. DMKDSP, UNSTACK ---Por nonrunnable virtual machine, go to label CHKILL in DMKDSP. DMKDSP, UN STACK runnible user, check pending interruptions for the following: £KPENQ Per interruption (VMPERPND) Pseudo page faults (VMPGPND) External interruptions (VMPXINT) Q!2TIQ I/O interruptions (VMIOIBT) I/O interruptions are reflected by swapping user PSWs and storing
the unit address and sta tus in low storage. Clear the pending bits in the VMBLOK. 1-214 IBM VM/310 System Logic and Problem Determination--Volu.e 1
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
Previous Page Next Page