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
the reader, the file is closed by writing the final buffer to disk and
co.pleting and queuing the SFBLOK to the reader's file chain. If the
owner of the file is currently logged on, he is given a message indicating that a file has been read and if he has an available card
reader, it is posted with a device end interruption. In available
reader is one of the correct class which is ready, is not busy, has no
active file, and has no pending interruptions. Various routines in CP accumulate, for.at, and punch account cards that
contain system usage information for certain users. These routines
format the information into an SO-column card image preceded by a punch CCW and call DMKACOAQ to queue the card for real output. DMK1COAQ calls DMKACOPU to punch the card on a real punch, if one is available;
otherwise, the card is queued in main storage until a punch is free. When a punch finishes processing its last file, a test is made to see if any accounting cards have been queued. If they have, DMK1COPU is called
to process thea. In addition to the cards generated by CP to account for a virtual machine's use of syste. resources, the user may request cards to be
punched in order to account for the use of virtual machine resources by jobs running under his userid. In order to do so, the user must have
the account option (ACCT) entered into the directory.
To punch an accounting card, the user must issue a code X'004C' DIAGNOSE instruction with a pointer to either a parameter list
containing user-specified "charge to" information, or a data area
containing up to 10 bytes of user-specified information to be punched
into the accounting card. DMKHVC validates the instruction operands,
builds an account buffer (ACNTBLOK), and DMKACOQO is called to queue the
card for real output. For additional information about this user
option, see "DIAGNOSE Interface (DMKHVC)" under "privileged
Instructions." When the user accounting option is being utilized, the user .ust keep
in mind that each additional accounting record requested is occupying
real storage space. Degradation of system performance occurs if
available storage becomes filled with accounting data. SPOOLING COMMANDS The spooling co.mands provide an interface
operator, and the spooling syste.. There
commands: Those that affect virtual devices Those that affect real devices
between the user, the system are three types of spooling Those that affect spool files that are queued within the system The commands that affect virtual devices are generally available to
all system users, and a user can only affect the status of devices that
are attached to his own virtual machine. Com.ands that affect the
status of the real system's spooling devices can be used by the system operator only. Commands that affect closed spool files that are
awaiting processing are generally available to all users, with some additional capabilities assigned to the system operator. For example, a 1-144 IBM VK/370 System Logic and Problem Deteraination--Volume 1
Previous Page Next Page