Execute Channel Program in Real Storage: Difference between revisions

Content deleted Content added
Added {{unreferenced}} tag to article (TW)
m fix spacing
 
(23 intermediate revisions by 10 users not shown)
Line 1:
{{Short description|Computer science macro}}
{{unreferenced|date=June 2012}}
{{refimprove|date=August 2019}}
{{Mainframe I/O access methods}}
In [[IBM mainframe]] [[operating system]]s, '''Execute Channel Program in Real Storage''' ('''EXCPVR''') is a supervisor[[Macro (computer science)|macro]] generating a [[system call]], implemented as a [[Supervisor Call instruction]], for low-level device access, where the programmer is responsible for providing a list of device-specific [[Channel_command_word#Channel_command_words|CCWs]], that is, a [[Channel_program#Channel_Program|channel program]], to be executed by I/O channels, control units and devices.<ref name="Murphy1995">{{cite book|author=Hank A. Murphy|title=MVS control blocks|year=1995|publisher=McGraw-Hill Ryerson, Limited|isbn=978-0-07-044309-9|pages=121, 134–135}}</ref> 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.<ref name="Sacks1994">{{cite book|author=David J. Sacks|title=MVS Answer Book|date=16 March 1994|publisher=Wiley|isbn=978-0-471-60821-9|page=74}}</ref>
 
==Relationship to Execute Channel Program (EXCP)==
EXCPVR may be viewed, historically, as a V=R (i.e., Virtual=Real) version of [[Execute Channel Program|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.Load EXCPVRReal wasAddress first] introducedprivileged ininstruction, SVS and was continued in MVS/370. Inas the laterdata instanceschannels ofdeal theonly OS,with supportreal was addedaddresses{{efn|Except for Format4300 1machines CCWs,equipped and,with henceECPS:VSE}}, fornot accessvirtual to data areas which are "above the line"addresses. The user of EXCPVR mustwas befirst authorized and must remainintroduced in supervisor modeSVS and keywas throughoutcontinued thein EXCPVR processMVS/370.
 
==Support for Format 1 CCWs==
In the later instances of the OS, support was added for Format 1 [[Channel_command_word#Channel_command_words|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 [[Supervisor_Call_instruction|SVC]]. In MVS/370 and subsequent instances of the OS, EXCPVR invokes [[Start Input/Output|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==
{{Notelist}}
 
==References==
{{reflist}}
 
{{Mainframe I/O access methods}}
 
EXCPVR's front-end is always in TCB mode as EXCPVR is a Type 1 [[Supervisor_Call_instruction|SVC]]. In MVS/370 and subsequent instances of the OS, EXCPVR invokes [[Start Input/Output|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..
[[Category:IBM mainframe operating systems]]
[[Category:System calls]]