Execute Channel Program in Real Storage: Difference between revisions

Content deleted Content added
No edit summary
m fix spacing
 
(20 intermediate revisions by 10 users not shown)
Line 1:
{{Short description|Computer science macro}}
{{ref improve|date=June 2012}}
{{sectionsrefimprove|date=JuneAugust 20122019}}
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>
{{Mainframe I/O access methods}}
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_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. Additionally, the programmer is expected and required to ensure that the input/output data areas are in real storage and are "fixed".
 
==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 [ Load Real Address ] privileged instruction., EXCPVRas wasthe firstdata introducedchannels indeal SVSonly andwith wasreal continuedaddresses{{efn|Except infor MVS/370.4300 machines equipped Unlikewith EXCPECPS:VSE}}, not thevirtual user ofaddresses. 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 Supervisorsupervisor==
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}}
 
==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..
[[Category:IBM mainframe operating systems]]
[[Category:System calls]]