g !!rtyg! A virtual device can be removed from a
virtual machine configuration prior to logging off with the DETACH
command. A user can detach any of his own devices, and the system operator can detach a real device from a virtual machine. If the
operator detaches the device, the user is informed of the operator's
action. A real device can be detached only if it is dedicated to a
single virtual machine or is attached to the system and is not in use
when the DETACH is issued.
A user may permanently or temporarily disconnect his terminal or virtual machine from the system by a console command, or the terminal or virtual machine may be forcibly disconnected by the operator. The system can
also log off the virtual machine. In any case, the routines that handle
the termination process are in the pageable module, DftKUSO. PERftANENT The user may voluntarily remove his virtual machine from the system via the LOGOFF command. This command terminates
all virtual machine operation, releases all storage occupied by control
blocks and virtual storage pages, and disconnects the teleprocessing
line connection to the user's terminal. If the user specifies the HOLD
option with LOGOFF, all of the above occurs, except that the
teleprocessing line remains enabled. This option is especially useful
for dialed connections that are reused immediately by another user.
The virtual machine can be forced off the system by the system operator via the FORCE command. This has the same effect as a
user-initiated logoff, except that the user is informed that the
operator has logged off his machine. A virtual machine may also be logged off the system: If the time for a read of a system password expires (28 seconds). If the user makes a connection to the system but does not logon
within a given period. If the virtual machine is running disconnected (without an active
terminal) and the virtual machine attempts a ter.inal read or enters
a disabled wait state.
The DftKUSOLG and DMKUSOFF subroutines process the LOGOFF co.mand. DftKDSP calls DftKUSOFF directly by DMKDSP to force the logoff of a user as previously described. A user may temporarily disconnect his terminal from his virtual machine by using the DISCONN com.and, while allowing
the virtual machine to continue to run. This co.mand flags the virtual machine as being disconnected and releases the user's terminal and
teleprocessing line. If the HOLD option was specified in the DISCOBR command, CP allows the line to remain enabled, and another user can use
the terminal to log on. The disconnected virtual machine continues to
be dispatched until it either attempts to execute a terminal read to the
disconnected console or it enters a disabled wait state. At this time, the dispatcher (DMKDSP) calls the routine DftKUSOFF directly to force the machine out of the system. While the machine is disconnected from its
virtual console (real terminal) any terminal output is lost; in
addition, CP may apply a disconnected penalty to the machines scheduling
priority, to bias the system in favor of interactive users.
1-126 IBft VM/370 System Logic and Problem Deteraination--Volume 1
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
Previous Page Next Page