Jump to content

Execute channel program

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Peterh5322 (talk | contribs) at 03:44, 19 May 2011. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Requested move

This template is misplaced. It belongs on the talk page: Talk:Execute channel program.

Execute channel programExecute Channel Program – Keep page names in a form which is consistent with OS documentation on same ... Execute Channel Program and not Execute channel program ... using initial capital letters on words which form the OS function's name Peterh5322 (talk) 03:44, 19 May 2011 (UTC)

In IBM mainframe operating systems, Execute Channel Program (EXCP) is a supervisor call for low-level device access, where the programmer is responsible for providing a list of device-specific channel commands to be executed by I/O channels, control units and devices.

A comprehensive list of "exits" (called appendages) allows authorized programs to override or augment many of the system security and data integrity checks. Most of these exits (really, closed subroutines) are present for compatibility with earlier instances of the OS, but the function of several have been modified and extended for MVS.

Using EXCP, legacy devices and datasets may be operated on with relatively high performance. EXCP devices are OPENed by specifying MACRF=(E) in the DCB.

Normally, when a device is OPENed for EXCP, only the first "extent" is represented in the DEB (which is forward- and backward-chained to the DCB as a system security measure as the DCB resides in user storage whereas the DEB resides in system storage). If the programmer tries to read past the end of an extent, a "unit check" occurs and the operation is suppressed, thereby preventing a data integrity exposure. Should the DEB include additional extents, the channel program may be updated by the programmer to refer to the next extent and the EXCP may be reissued, or the abnormal end exit, if provided, may update the channel program to the next extent and the operation may be re-driven without first going through the EXCP processor.

EXCP is sometimes confused with a direct access storage access method, but it is not; it is general purpose low-level device access interface which supports any legacy device type and any legacy dataset organization. This makes perfect sense as EXCP was formerly the sole method of accessing all input/ouput devices and datasets in the pre-MVS instances of the OS.

A variation of EXCP is XDAP, which is for storage, only, and is provided for reading and updating existing direct access storage records. XDAP cannot be used to add records, but XDAP can be utilized along with BSAM or BPAM to effect record additions to such datasets, and several OS components utilize XDAP in this manner.

EXCP may also be used to access communications devices attached to IBM 2701, 2702 and 2703 communications controllers and IBM 370x or Amdahl 470x front end processors operating in emulator mode (EP) or partitioned emulator mode (PEP).

EXCP's front-end is always in TCB mode, as EXCP is a Type 1 SVC. In MVS and subsequent instances of the OS, EXCP's back-end is always in SRB mode, but the back-end contains emulation code which allows the exits developed for earlier instances of the OS to function largely as before.