A user's virtual machine may also be disconnected by the system. If
the disconnected user logs on to the system while the disconnected machine is still running, it is reconnected and can continue to interact
with the system in the usual manner.
The DKKUSO subroutine processes the DISCOII command. CONSOLE FUNCTIONS DKKCFK analyzes CP co.mands and passes pontrol to the appropriate
routine to handle the command. DKKCFK can be entered by the Attention
key (or equivalent) at the user's terminal or directly from a virtual machine. When a console interruption occurs by the Attention key at the user's
terminal, DKKIOSIN calls DMKCNSIN to handle the unsolicited
interruption, then DMKCNSIN calls DKKCFKBK. DMKCFMBK first calls DKKFREE to obtain storage for an 18-doubleword
input buffer. Next, DMKQCNWT is called to send the CP message to the
terminal to inform the user that he has entered console function DMKQCBRD is then called to read the command line entered at the console. DMKCFMEN is the entry point for commands coming directly from the
virtual machine. DKKPRGIN enters at DKKCFKEN here when a DIAGNOSE instruction with a code of 8 is detected. The address of an
18-doubleword input buffer is passed in register 1; therefore, a read
to the terminal is not needed.
After either the read to the terminal or entry from the virtual
machine, DMKSCNFD is called to find the command type. On return from DMKSCNFD, register 1 points to the start of the command and register 0 contains the length of the command. DKKCFCKD is then called and the
command is matched against a list of valid commands. The list contains a
16-byte entry for each Each entry contains 8 bytes for the name, 2 bytes for class mask, 2 bytes for an abbreviation count, and 4
bytes containing the routine address. If the entered command matches an
entry in the list, it is then checked to ensure that a valid
abbreviation for the command has been used. If this test is not
successful, DKKSCN continues to scan the list for a valid command. Should the abbreviation be valid, a check is then .ads to deter.ine if
this user is of the proper class to use the command entered. If this is
successful, DKKCFM then calls the appropriate routine to process the
co •• and.
After the co •• and has been processed, control is returned to DKKCFM. There are three possible returns. (1) On a normal return, the input
buffer is scanned to see if there are any more commands. If none exist, DMKCFK returns to the virtual machine (if entered via DIAGNOSE) or calls DKKQCNRD to read the next command from the terminal. (2) On a return
plus 4, the VMCFWAIT bit is turned off to allow the virtual machine to
run. DMKFRET is called to return the input buffer storage. Then control
returns to either the virtual .achine, if entered via a DIAGNOSE, or to DMKDSPCH if entered via the Attention key. (3) On a return plus 8, the
operation is the same as plus 4 except that the VMCFWAIT bit is left on.
CP Introduction 1-121
DISPATCHING AND SCHEDULING The scheduler, D!KSCH, selects dispatchable virtual aachines froa the
virtual machine population. The auxiliary routine that assists the
scheduler and dispatcher is the request stack maintenance routine, DMKSTK. To make decisions on dispatching and scheduling, the control prograa
places all virtual machines into various categories, and recognizes user
aachines as being in one of several states. The virtual aachine
categories either interactive or noninteractive virtual .achin9, are defined in the following way: An interactive virtual machine is one whose use of the systea is
punctuated by regular and frequent terminal I/O, and does not have
long processor execution times. A virtual machine becomes eligible
to enter interactive status whenever a channel prograa for virtual
console I/O has completed, or whenever I/O for a dedicated or dialed
virtual telecoamunications line has completed. A non-interactive virtual aachine is one that has violated an
interactive criterion, or one that has entered an idle wait state by
entering console function mode (equivalent to stopped state), or by
loading a wait state PSi that is not enabled for any busy channel. CP schedules interactive users ahead of non-interactive users.
Non-interactive users are subdivided into several classes. Bormal non-interactive virtual machines are scheduled by a priority scheme described below. A virtual machine is allowed to execute for a
specified time period and then it is placed in a list of those
machines that are waiting.
To give preference to certain classes of virtual machines, a priority
scheduling scheme allows virtual machines to be scheduled with a
priority class. The priority is a number assigned by the directory;
however, the number may be altered by the system operator.
To efficiently manage the large inventory of potential virtual machines that are logged on to the system, CP defines several states that a
virtual machine may occupy. The scheduler can move a virtual machine from one state to another; however, a virtual machine may exist in only
one state at any given instant. CP can then make scheduling and
dispatching decisions by looking only at the subset of virtual machines that are in the appropriate state. To do this search, it also maintains
lists of virtual machines in certain executable states.
1 user's virtual machine may be in one of the following states: State --1--
2
3
4
5
6
7
8
1-128 Meani.!!!l Interactive and dispatchable (in queue1, in dispatch list)
Interactive and not dispatchable (in queue1, in dispatch list)
Interactive and eligible for queue 1" but no available real
storage (waiting for queue1, in eligible list)
In wait state with terminal read or write active
Non-interactive and dispatchable (in queue2, in dispatch list)
Non-interactive and not dispatchable (in queue2, in dispatch
list)
Non-interactive and eligible for queue2, but no available real
storage (waiting for queue2, in eligible list)
Idle - waiting for asynchronous I/O or external interruption, or
stopped (in console function mode) IBM VM/370 System Logic and Problem Detersination--Voluae 1
Previous Page Next Page