Jump to content

Execute Channel Program in Real Storage

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

In IBM mainframe operating systems, Execute Channel Program in Real Storage (EXCPVR) is a supervisor call for low-level device access, where the programmer is responsible for providing a list of device-specific CCWs, that is, a Channel Program, to be executed by I/O channels, control units and devices. Additionally, the programmer is expected and required to ensure that the input/output data areas are in real storage and are "fixed".

EXCPVR may be viewed, historically, as a V=R version of EXCP. However, EXCPVR is not restricted to V=R applications. Indeed, EXCPVR may refer to non-V=R data areas provided such data areas are "fixed" and the channel command words which reference such data areas have been translated from virtual to real addresses by the programmer using the LRA privileged instruction. EXCPVR was first introduced in SVS and was continued in MVS/370. In the later instances of the OS, support was added for Format 1 CCWs, and, hence, for access to data areas which are "above the line". The user of EXCPVR must be authorized and must remain in supervisor mode and key throughout the EXCPVR process.

EXCPVR's front-end is always in TCB mode, as EXCPVR is a Type 1 SVC. In MVS/370 and subsequent instances of the OS, EXCPVR invokes STARTIO to schedule execution of the channel program, hence EXCPVR's back-end is always in SRB mode, but the back-end contains emulation code which allows the exits developed for earlier, pre-MVS instances of the OS to function largely as before.