Browse Prior Art Database

Explicit Confirmation of Initiation of Channel Programs at Devices Or Acceptance of Status

IP.com Disclosure Number: IPCOM000120553D
Original Publication Date: 1991-May-01
Included in the Prior Art Database: 2005-Apr-02
Document File: 3 page(s) / 160K

Publishing Venue

IBM

Related People

Brown, PJ: AUTHOR [+5]

Abstract

During an input/output (I/O) operation on an I/O channel, there are time windows during which the channel and device are not in agreement as to the state of a channel program or attempted status presentations. Certain errors during these windows can result in more drastic programming recovery action than may be needed or may cause the device to represent previously presented status, thereby causing the channel and software to have incorrect information about the state of the device. For example, if the device accepts a command and starts the operation when it sends the channel status indicating that it has accepted the command, there is a period of time until the channel receives the status during which the operation is started although the channel does not know this.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 40% of the total text.

Explicit Confirmation of Initiation of Channel Programs at Devices
Or Acceptance of Status

      During an input/output (I/O) operation on an I/O channel,
there are time windows during which the channel and device are not in
agreement as to the state of a channel program or attempted status
presentations.  Certain errors during these windows can result in
more drastic programming recovery action than may be needed or may
cause the device to represent previously presented status, thereby
causing the channel and software to have incorrect information about
the state of the device.  For example, if the device accepts a
command and starts the operation when it sends the channel status
indicating that it has accepted the command, there is a period of
time until the channel receives the status during which the operation
is started although the channel does not know this.  If an error
occurs during this window, the program must assume the worst case and
perform recovery as though the operation had been started.  An
important point is that the device may not even be accepting the
command; it could be indicating that it is busy or otherwise
rejecting the command.  Thus, errors could cause the program to
initiate recovery even when no action was going to occur at the
device.

      Another negative effect of this window occurs when the program
attempts to terminate an operation which it believes is still queued
within the channel subsystem.  This may be done for various software
recovery functions.  There are instructions or instruction sequences
defined for which the channel subsystem must guarantee that the
operation has not actually been started at the device if it indicates
that the operation is still start-pending.  Thus, if these recovery
mechanisms are invoked during the window, the CPU must wait for the
completion of the activity on the I/O interface before it can
accurately decide how to proceed.  This effectively makes these CPU
instructions synchronous with I/O interface activity if they are
issued during the window; this is undesirable since the I/O activity
may take a long time, relative to CPU speed, to come to a resolution.
There are other windows in which an error condition could cause the
program to receive I/O completion status more than once for the same
operation, which could lead to incorrect system operation.

      The effects of these uncertainties are magnified if the I/O
interconnection medium is one in which messages can be damaged or
lost.

      In a message-based I/O architecture, the channel sends the
command to the device in the same message which is used to select the
device for an operation.  The device responds with a message
indicating whether or not it can perform the operation.  Since the
command is sent before knowing whether the device can be selected,
errors during the selection would leave the operation in an uncertain
state with respect to real device activity.  Such errors could
i...