and siaulated by aeans of a virtual FCB maintained by the executive.
The use of the virtual FCB is the only way to simulate end-of-fora
conditions reflected by the detection of a channel 9 or 12 punch. When the spooled file is directed to a real 3211" 3203, or 1403, the operator
is responsible for loading the FCB or mounting the proper carriage tape.
If any of the unsupported unit record features are required, the real
device must be attached directly to the user's virtual machine. Thus, a 3505 reader could be a spooling input reader, but attached directly to a
batch virtual machine when it is necessary to read .ark sense cards.
Qutput File D8KVSP receives control fro. the virtual I/O executive, DftKVIO, when the
user's .achine issues a SIO to a spooled unit record device. DftKVIO does not pass control until it has been determined that the device is
available (that is, it is not busy and has no interruptions pending). DftKVSP first determines if the device is currently processing a file.
If it is, processing continues. If this is the first co •• and issued by the given device, a new output file must be opened. In open subroutine
is called to build the control blocks necessary to manage the file and
to obtain virtual storage and DASD buffer space. Control is then
returned to DftKVSP. Before the first record of an output spool file is written, DftKVSP writes a tag record (NOP CCW, TIC, data sequence) and initializes the
136-byte data area to blanks. It then sets the spool buffer displacement
pointer to the first doubleword in the buffer beyond the tag record. DftSVSP then analyzes and interprets the channel program associated with
the virtual machine's SIO. Each CCW is tested for validity of command, address, flags, alignment, protection, etc., and if the CCW is valid,
the virtual machine's data is moved from his own virtual storage space
to the buffer in the spooling virtual storage. When this buffer is
full, it is written to a page of DASD secondary storage and a new buffer
is obtained. The interpretation of the virtual machine's channel program continues until there are no more CCWs or until an error
condition is detected that prohibits further processing. In either
case, the device is marked as having the proper interruptions pending, a CSW is constructed, and DftKVSP exits to the main dispatcher. In contrast
to nonspooled I/O, the virtual machine has remained in a pseudo-wait (IOWAIT) for the time it took to interpret the entire channel program. The output file can be logically closed by the virtual machine either by issuing an invalid CCW command code, or by the CP CLOSE command. In
either case, D8KSPL checks for tag record information
and 3800-related information in the VSPXBLOK. (The VSPIBLOK, pointed to by the VDEVEITN field of the VDEVBLOK for the output spool device,
contains the tag information entered via the CP TAG command.) If tag data exists, the first spool buffer for the file is read in, the tag data is inserted in the tag record, and the buffer is rewritten to D1SD storage. If no tag data exists, the tag record data field is left blank.
The device is then cleared of pending interruptions, the file chains are completed, and the file is either queued for output on a real device of
the proper type (printer or punch), or, if IFER is in effect, is queued
for input to another virtual machine.
The 3800-related information includes:
CHARS -character arrangeaent table 80DIFY - copy modification name FeB -file control block 1-140 IB8 V8/370 System Logic and Problem Deter.ination--Volume 1
FLASH -flash count overlay use
This information is contained in the VSPIBLOK for a virtual printer. When the file is closed, the information is contained in the first DASD
buffer.
Input file processing is similar to output file processing, except for
the open and close functions, and the analysis of CCW commands and the
direction of data movement. Many common routines are utilized to locate
and verify CCWs, obtain buffer space, and to move the spooling data.
The difference in the open function is that instead of creating a new it is necessary to locate a reader file that already exists in the
system. To do this, -the open subroutine scans the SFBLOKs chained from the anchor, READERS, to find a file with an owner userid that matches that of the caller and is not in hold status. If a file is not found, a
unit check or intervention required condition is reflected to the
virtual machine; otherwise, its SFBLOK is chained to the control block
for the reader and the channel program is interpreted in the same manner
as for an output file.
After the input file is exhausted, a unit exception is reflected to
the user machine, unless the user has requested either continuous
spooling or that an EOF not be reflected. With continuous spooling, the
unit exception is not reflected until the last file for that virtual
machine is processed. If NOEOF is specified, the simUlation terminates
with a unit check or intervention-required condition (similar to what
happens if the EOF button on a real reader is not pushed).
In
unless
saved.
either case, the input file is then deleted from the system, the user has specifically requested that his input files be
If the file is saved, it can be re-read any number of times.
Support of virtual console I/O for both the virtual
is provided as an option for the VM/370 spooling
support fulfills the following requirements: machine and VM/370 capabilities. This Provides hardcopy support for CMS Batch Facility virtual machines. Provides hardcopy support for display devices used as system or
virtual machine consoles. Allows disconnected virtual machines to spool virtual console output, CP commands and system resources to disk instead of losing the
output. Improves the performance of virtual machines that currently produce a
large amount of console output. Whenever a SIO is issued to a virtual machine console, the virtual
console manager (DMKVCN) determines if the spooling option is active.
If it is, control is passed to the virtual spooling manager at DMKVSPBP to insert the data into a spool file buffer. While console spooling
utilizes, basically, the same code as printer spooling, the following
exceptions are made: CP Introduction 1-141
Previous Page Next Page