In
IBM mainframe
IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the large computer market. Current mainframe computers in IBM's line of business computers are developments of the basic design of th ...
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s, Execute Channel Program in Real Storage (EXCPVR) is a
macro generating a
system call
In computing, a system call (commonly abbreviated to syscall) is the programmatic way in which a computer program requests a service from the operating system on which it is executed. This may include hardware-related services (for example, acc ...
, implemented as a
Supervisor Call instruction
A supervisor, or lead, (also known as foreman, boss, overseer, facilitator, monitor, area coordinator, line-manager or sometimes gaffer) is the job title of a lower-level management position that is primarily based on authority over workers or ...
, for low-level device access, where the programmer is responsible for providing a list of device-specific
CCWs, that is, a
channel program
In computing, channel I/O is a high-performance input/output (I/O) architecture that is implemented in various forms on a number of computer architectures, especially on mainframe computers. In the past, channels were generally implemented with cus ...
, 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", either prior to invoking EXCPVR or via the page fix appendage. EXCPVR can in some situations provide improved performance compared to EXCP.
Relationship to Execute Channel Program (EXCP)
EXCPVR may be viewed, historically, as a V=R (i.e., Virtual=Real) 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
Load Real Address privileged instruction, as the data channels deal only with real addresses,not virtual addresses. EXCPVR was first introduced in SVS and was continued in MVS/370.
Support for Format 1 CCWs
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" (Format 0 CCWs may only access data areas which are "below the line").
Relationship to supervisor
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 appendages developed for earlier, pre-MVS instances of the OS to function largely as before and thereby to appear to be in TCB mode, for which these appendages were originally designed. This distinction can complicate conversion of certain "roll-your-own" access methods and applications to MVS.
Notes
References
{{Mainframe I/O access methods
IBM mainframe operating systems