Content deleted Content added
Peter Flass (talk | contribs) →Appendages: add definition of appendage |
|||
(8 intermediate revisions by 7 users not shown) | |||
Line 1:
{{See also|EXCPVR}}▼
{{short description|Operating System low level I/O API}}
▲{{See also|EXCPVR}}
{{more citations needed|date=June 2012}}
In [[IBM mainframe]] [[operating system]]s, '''Execute Channel Program''' ('''EXCP''') 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 ''[[Channel program#Channel Program|channel program]]''—a list of device-specific commands (CCWs)—to be executed by I/O channels, control units and devices.<ref name="Hannula1974">{{cite book
Line 27:
| isbn=978-0-07-032673-6
| page=558
}}</ref><ref>{{cite
| publisher = IBM
| title = z/OS Version 2 Release 4 DFSMSdfp Advanced Services
Line 36:
| url = https://www.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc236861/$file/idas300_v2r4.pdf
| id = SC23-6861-40}}
</ref> is more specifically described in the OS System Programmer's Guide.;<ref>{{cite
| author=Gary A. Stotts
| title=DOS/VSE: Introduction to the Operating System
Line 43:
| isbn=978-0-89435-332-1
| page=18
}}</ref> is more specifically described in DOS Supervisor and I/O Macros.<ref name=GC24-S037-12>{{cite
| title = DOS Supervisor and I/O Macros
| id = GC24-S037-12
Line 50:
}}
</ref><ref name=SC34-2709>
{{cite
| publisher = IBM
| title = IBM z/VSE Version 6 Release 1 System Macros User's Guide
Line 67:
==Appendages==
"An appendage is a programmer-written routine that provides additional
control over I/O operations during channel program execution."<ref>{{cite book
control over I/O operations during channel program execution."<ref>{{cite book |last1=IBM Corporation |title=OS Data Management for System Programmers |date=April 1973 |page=46 |url=http://www.bitsavers.org/pdf/ibm/360/os/R21.7_Apr73/GC28-6550-11_Data_Management_for_System_Programmers_Rel_21.7_Apr73.pdf |access-date=June 28, 2022}}</ref> A comprehensive list of ''appendages''{{sfn|DFSMSdfp|loc=[https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc236861/$file/idas300_v2r4.pdf#page=229 EXCP and EXCPVR Appendages]|pp=199-200}} ([[User exit|exits]] in the EXCP context) allows authorized programs{{efn|There are several type of authorization for the use of appendages:▼
| title = OS Data Management for System Programmers - Release 21
| id = GC28-6550-ll
| date = April 1973
| edition = Twelfth
| section = Appendages
| section-url = http://www.bitsavers.org/pdf/ibm/360/os/R21.7_Apr73/GC28-6550-11_Data_Management_for_System_Programmers_Rel_21.7_Apr73.pdf#page=43
| page = 46
| url = http://www.bitsavers.org/pdf/ibm/360/os/R21.7_Apr73/GC28-6550-11_Data_Management_for_System_Programmers_Rel_21.7_Apr73.pdf
| series = IBM Systems Reference Library
| access-date = June 28, 2022
}}
▲
*A program that is APF authorized, running in a system (0-7) key or in Supervisor Mode may use any appendage.
*A program may use any appendage that is automatically selected by OPEN for the use of an access method.
*A program may use any appendage that is defined at IPL time in IEAAPP00.{{sfn|DFSMSdfp|loc=[https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc236861/$file/idas300_v2r4.pdf#page=231 The Authorized Appendage List (IEAAPP00)]
}} to override or augment many of the system security and data integrity checks. Most of these appendages are supported for compatibility with earlier instances of the OS, but the functions of several have been modified or extended for MVS. The appendages are specified in the DCB as the last two characters of the module name IGG019xx, where xx = WA to Z9, inclusive. These module names are reserved for installation-written appendages. Any other name of the form IGG019xx is reserved for use by IBM access methods.
==Dataset integrity==
Line 77 ⟶ 90:
==Legacy datasets only==
EXCP is sometimes confused with a direct access storage device access method, but it is not for direct access storage devices exclusively; rather, it is a general purpose low-level device access interface which supports any ''legacy'' device type and any ''legacy'' dataset organization. For accessing ''all'' device types and ''all'' dataset organizations, the more general privileged [[Start Input/Output]] interface (STARTIO) is available in MVS/370 and subsequent instances of the OS although it is not an officially supported interface.
==Simplified operations on direct access datasets==
Line 86 ⟶ 99:
==Relationship to supervisor==
EXCP's front-end is always in [[Task Control Block]] (TCB) mode, The normal mode for applications,<ref name="SoftwareAG">{{cite web |last1=Software AG |title=Natural zIIP Processing: TCBs, SRBs and Enclaves| url=https://documentation.softwareag.com/natural/nat825mf/ziip/naz-nat-processing.htm |access-date=Mar 22, 2021}}</ref> as EXCP is a Type 1 [[Supervisor Call instruction|SVC]].
In MVS/370 and subsequent instances of the OS, the EXCP processor invokes [[Start Input/Output|STARTIO]] to schedule execution of the channel program. Although the EXCP processor's back-end is always in [[Service Request Block]]{{efn|In OS/360, OS/VS1 and SVS there is no SRB mode and appendages run with interrupts disabled.}} (SRB) mode,<ref name=SoftwareAG /> the back-end contains emulation code which allows the appendages developed for earlier, pre-MVS instances of the OS, specifically for EXCP, 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.
==Channel programs==
System/360 channel programs are a sequence of commands which are executed by the channel and the I/O device. Channel programs can be located anywhere in main storage. The channel program is a sequence of ''Channel Command Words'' (CCWs), which may be executed sequentially unless a branch, called ''Transfer In Channel'' (TIC), is executed, or the channel returns a [[IBM System/360 architecture#CSW Status modifier|status modifier]]. Each CCW is a doubleword (eight bytes) as follows:
;[[IBM System/370|System/370]] with Dynamic Address Translation
:Adds the Channel Indirect Data Addressingfeature{{sfn|S370|loc=[http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf#page=396 CHANNEL INDIRECT DATA ADDRESSING]|pp=13-45-13-46}} and the Indirect Data Address{{sfn|S370|loc=[http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf#page=389 CHANNEL-COMMAND WORD]|p=13-38}} CCW flag.
;[[IBM System/370-XA|System/370-XA]]
:Adds format 1 CCWs{{sfn|S370-XA|loc=[http://bitsavers.org/pdf/ibm/370/princOps/SA22-7085-1_370-XA_Principles_of_Operation_Jan87.pdf#page=384 Channel-Command Word]|p=[http://bitsavers.org/pdf/ibm/370/princOps/SA22-7085-1_370-XA_Principles_of_Operation_Jan87.pdf#page=#385 15-24-15-25]}} with 31-bit addresses
}}
<pre>
bit 0 7 8 31
Line 101 ⟶ 119:
|Flags |000|reserved| count |
+------+---+--------+------------+
</pre>
Six commands are defined, in the low-order bits of the command field (0-7). The high-order four (or six) bits are ''modifiers'' ('M') for some commands, or are ignored. The commands are:
<pre>
0100 - Sense
1000 - Transfer in Channel (TIC)
Line 154 ⟶ 173:
==References==
;S/360
:{{cite book
| title = IBM System/360 Principles of Operation
| id = A22-6821-6
| date = January 1967
| edition = Seventh
| url = http://bitsavers.org/pdf/ibm/360/princOps/A22-6821-6_360PrincOpsJan67.pdf
| ref = {{sfnref|S360}}
| publisher = [[IBM]]
| access-date = Dec 4, 2019
}}
;S/370
:{{cite book
| title = IBM System/370 Principles of Operation
| id = GA22-7000-10
| date = September 1987
| edition = Eleventh
| url = http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf
| ref = {{sfnref|S370}}
| publisher = IBM
}}
;S/370-XA
:{{cite book
| title = IBM System/370 - Extended Architecture - Principles of Operation
| id = SA22-7085-1
| date = January 1987
| edition = Second
| url = http://bitsavers.org/pdf/ibm/370/princOps/SA22-7085-1_370-XA_Principles_of_Operation_Jan87.pdf
| ref = {{sfnref|S370-XA}}
| publisher = IBM
}}
;z/ARCH
:{{cite book
| title = z/Architecture - Principles of Operation
| id = SA22-7832-13
| date = May 2022
| edition = Fourteenth
| url = http://bitsavers.org/pdf/ibm/360/princOps/A22-6821-6_360PrincOpsJan67.pdf
| ref = {{sfnref|zArch}}
| publisher = [[IBM]]
| access-date = Dec 4, 2019
}}
;DFSMSdfp
:{{cite
▲ | publisher = IBM
| title = z/OS Version 2 Release 4 DFSMSdfp Advanced Services
| date = August 2020
Line 162 ⟶ 222:
| id = SC23-6861-40
| ref = {{sfnref|DFSMSdfp}}
| publisher = [[IBM]]
}}
<references />
|