A skip to channel 1 CCW is inserted after every 60 lines of output. The operator's virtual console spool buffer is written out after
every 16 lines of output. The virtual spool buffer is written out to the allocated spool device
when the first CCW is placed in that virtual buffer. The linkage area
of the virtual spool buffer takes the fora of a CLOSE file to allow
checkpoint (DMKCKP) to recover the active spool file in the event of
a shutdown because of system failure. If data in the virtual buffer
has not yet been written to the spool device, it will not be recovered. To maintain a pseudo closed file status for console spool files, DMKSPL now assigns spool identifications to all output spool files
where they are first queued.
A virtual system reset, device reset, or IPL close the
virtual console spool file. The LOGOFF, FORCE, or DETACH of virtual
console commands does close the virtual console spool file. The SHUTDOWN command does close the operator's console spool file. If
the SHUTDOWN co •• and is issued by a Class A user other than the
operator, the console spool file for both the user and operator is
closed.
The inclusion of the spool file tag record in a virtual console spool
file is processed by DMKVSP and DMKSPL as described for printer spool
files in "Output File Processing" under "Virtual Spooling Manager." REAL SPOOLING MANAGER (DMKRSP) The real spooling manager operates the real unit record devices that are
attached to the system and that are used to transcribe input data into
reader spool files and user output spool files onto the real printers
and punches. The executive opti.izes the use of main storage and the
processor rather than running the system unit record devices at their
rated speeds. DASD input files are not double-buffered
except for a 3800 printer, and under periods of peak load, input and
output devices tend to run in bursts. However, command chaining is used
for all unit record channel programs so that the devices are running at
their .aximum speed with a mini.um of interruptions.
Both the input and output operations of DMKRSP are interruption driven.
Thus, DMKRSP does not process unless an internally or externally
generated not-ready to ready device end interruption occurs. External
interruptions are generated by the hardware in the nor.al manner, while
internal, "pseudo interruptions," are generated by the software when an
output file has been queued on the real printer or punch file chain, or
when the operator issues a START co.mand to a drained device. Upon receipt of the initial device end for a printer or punch, DMKBSP searches the appropriate file chain for the SFBLOK of a file whose class
.atches that of the device that was aade ready. If FLASH is specified
for a 3800 printer, the flash overlay naae must also match. When the SFBLOK is located (provided the file is not in a hold status), it is
1-142 IBM VM/370 System Logic and Problem Deteraination--Volu.e 1
unchained from the output queue and chained to the real device block
that services the file. A page of real main storage (two pages for a 3800 printer) is then obtained for use as a buffer, and the output
separator routine (DKKSEP) is called to print output identifier pages. DMKTCS is then called to set up the 3800 for printing that file. When DMKSEP returns control to DMKRSP, the first buffer of the file is paged
into real main storage, and the CCWs in the channel progra. that it
contains are adjusted so that their data addresses correspond to the
real addresses at which the data resides. The real SIO supervisor (DMKIOSQR) is then called to start the channel program, and D!KBSP exits
to the dispatcher (DMKDSPCH) to await the interruption. When the channel end/device end interruption for the co.pleted buffer
is unstacked to DMKRSP, the forward chain file link field locates the
next buffer. This buffer is paged-in, and the process is repeated until
the final buffer is processed. At this point, the number of copies
requested for the file is decremented. If the nu.ber of copies is 0, processing is terminated and the file is deleted from the syste.;
otherwise, the process is repeated as many times as necessary. Por a 3800 printer, double buffering is maintained so that the second buffer
is filled while the first buffer is being printed. When file processing is complete, a scan of the appropriate output
queue is again made, and if a file is found it is processed. If the
queue is empty, or if a file with a matching class is not found, an exit
is taken to DMKDSPCH to wait for another ready interruption. If a 3800 device is used, the file is placed on the 3800 delayes purge queue. If
this queue reaches maximum size, the oldest file in the queue is deleted
from the system. output file processing can be modified by either the system operator, by a spooling support command or as a result of syste. errors. The
operator commands allow a given file to be backspaced or restarted, and
the files of individual users or the whole system to be held and
released for output. I/O errors also affect the spooling syste., and a
description of how they are processed is in the section "Spool Pile Error Recovery."
Reader file processing is initiated by the receipt of a device end
interruption from a spooling card reader. No explicit operator co •• and
is required to start the processing of an input file. When the device
end is unstacked to DMKRSP, an open subroutine is called to build the
necessary control blocks and to obtain the virtual, real, and DASD buffer space required for the file. A channel prograa to read 41 cards
is built in the buffer, and DMKIOSQR is called to start the reader. When the interruption for the first buffer is unstacked, the first
card is checked for its validity as a userid card. The miniaum information that this card must contain is the userid of the owner of
the input file. It may appear anywhere on the card, with the
restriction that it must be the first inforaation punched. Optional
information on the userid card can include a filename and type and/or
the class of the virtual card reader to which the file is to be
directed. If the userid is valid, the file processing continues;
otherwise, the operator receives an error message and processing is
terminated.
After each file buffer is read, it is written onto disk by the paging I/O routines in the saae way that virtual output files are handled. When a unit exception signaling physical end of file is received froa CP Introduction 1-143
Previous Page Next Page