Execute Channel Program in Real Storage: Difference between revisions

Content deleted Content added
No edit summary
m fix spacing
 
(37 intermediate revisions by 14 users not shown)
Line 1:
{{Short description|Computer science macro}}
{{Mainframe I/O access methods}}
{{refimprove|date=August 2019}}
In [[IBM mainframe]] [[operating system]]s, '''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 [[Channel I/O|channel commands]] 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".
In [[IBM mainframe]] [[operating system]]s, '''Execute Channel Program in Real Storage''' ('''EXCPVR''') is a [[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 InReal theAddress later] instancesprivileged of the OSinstruction, supportas wasthe addeddata forchannels Formatdeal 1only CCWs,with and,real hence,addresses{{efn|Except for access4300 tomachines dataequipped areaswith whichECPS:VSE}}, arenot "abovevirtual the line"addresses. The user of EXCPVR mustwas befirst authorized and must remainintroduced in supervisor modeSVS and keywas throughoutcontinued thein EXCPVRMVS/370. process.
 
==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 exitsappendages 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}}
 
[[Category:IBM mainframe operating systems]]
EXCPVR's front-end is always in TCB mode, as EXCPVR is a Type 1 SVC. In MVS and subsequent instances of the OS, EXCPVR'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.
[[Category:IBMSystem Mainframe computer operating systemscalls]]
[[Category:Computer file formats]]