Execute Direct Access Program

Last updated

In IBM mainframe operating systems, Execute Direct Access Program (XDAP) is a pseudo access method for accessing direct access datasets on a block by block basis. XDAP is more specifically described in the OS System Programmer's Guide. [1]

Contents

Existing blocks

Existing blocks may be read or updated. The dataset may not be created nor extended using XDAP; for that purpose a true access method is required. XDAP may coexist with BSAM or BPAM, and several OS components are implemented in this way.

DASD address computation

The programmer is responsible for computing the full direct access block identifier, MBBCCHHR. System algorithms are available for calculating the MBBCCHHR from a TTRN. System data, in the form of "track capacity tables", are available for calculating the TTRN from a block number, for any direct access device type. Later versions of the OS facilitate accessing very large capacity devices by using the TRKADDR macro.

List and Execute Forms

List and Execute forms of XDAP are supported, whereby a prototype form, called the List Form, is expanded as data, and a functional form, called the Execute Form, is expanded as instructions. XDAP is also supported conventionally, in which case the two forms are combined and is expanded as inline data and instructions. The use of List and Execute Forms facilitates the development of re-enterable programs.

XDAP implicitly invokes EXCP

XDAP results in the EXCP supervisor call being executed, hence Execute Channel Program (EXCP) is implicitly embedded within XDAP. The IOB, which is the sole parameter to EXCP, is included as a data structure within the XDAP macro expansion as are the channel command words.

OPENing an XDAP dataset

XDAP must reference an OPENed DCB and a full direct access identifier. The DCB may be OPENed for input, for output or for input and output ("INOUT"), but all outputs must be update writes of existing blocks as XDAP does not support format writes. BSAM and BPAM are available for executing format writes (writes which add new blocks to the dataset, i.e. the initial or an additional block, and, particularly, the final block).

IOBSPSVC flag for XDAP and SAM and PAM coexistence

The IOBSPSVC flag (logically, the IOB's SAM and PAM SVC flag) is available, and which causes Sequential Access Methods appendages [2] to be bypassed. This enhancement, which was first implemented with SVS, but was not retrofitted to previous versions of the OS, significantly facilitated processing a dataset already OPENed for BSAM or BPAM, while using XDAP.

Otherwise, certain pre-SVS SAM and PAM appendages could cause random supervisor storage overlays when presented with certain XDAP channel programs. As IBM did not guarantee system security and data integrity on pre-SVS systems, an obvious circumvention was to utilize only those XDAP channel programs which did not also utilize RPS as it was the RPS-type XDAP channel programs which were confusing the SAM and PAM appendages, thereby leading to random supervisor storage overlays.

Related Research Articles

A direct-access storage device (DASD) is a secondary storage device in which "each physical record has a discrete location and a unique address". The term was coined by IBM to describe devices that allowed random access to data, the main examples being drum memory and hard disk drives. Later, optical disc drives and flash memory units are also classified as DASD.

Job Control Language (JCL) is a name for scripting languages used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem.

In the context of IBM mainframe computers in the S/360 line, a data set or dataset is a computer file having a record organization. Use of this term began with, e.g., DOS/360, OS/360, and is still used by their successors, including the current z/OS. Documentation for these systems historically preferred this term rather than file.

This article discusses support programs included in or available for OS/360 and successors. IBM categorizes some of these programs as utilities and others as service aids; the boundaries are not always consistent or obvious. Many, but not all, of these programs match the types in utility software.

The Job Entry Subsystem (JES) is a component of IBM's MVS mainframe operating systems that is responsible for managing batch workloads. In modern times, there are two distinct implementations of the Job Entry System called JES2 and JES3. They are designed to provide efficient execution of batch jobs.

Basic Telecommunications Access Method (BTAM) is a low-level programming interface specified by IBM for use on the IBM System/360 for start-stop and binary synchronous telecommunications terminals. Later, IBM specified higher-level interfaces QTAM and TCAM.

An access method is a function of a mainframe operating system that enables access to data on disk, tape or other external devices. Access methods were present in several mainframe operating systems since the late 1950s, under a variety of names; the name access method was introduced in 1963 in the IBM OS/360 operating system. Access methods provide an application programming interface (API) for programmers to transfer data to or from device, and could be compared to device drivers in non-mainframe operating systems, but typically provide a greater level of functionality.

In IBM mainframe operating systems, basic partitioned access method (BPAM) is an access method for libraries, called partitioned datasets (PDSes) in IBM terminology. BPAM is used in OS/360, OS/VS2, MVS, z/OS, and others.

In IBM mainframe operating systems, such as OS/360, MVS, z/OS, a Data Control Block (DCB) is a description of a dataset in a program. A DCB is coded in Assembler programs using the DCB macro instruction. High level language programmers use library routines containing DCBs.

In IBM mainframe operating systems, Basic sequential access method (BSAM) is an access method to read and write datasets sequentially. BSAM is available on OS/360, OS/VS2, MVS, z/OS, and related operating systems.

In IBM mainframe operating systems, Execute Channel Program (EXCP) is a 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—a list of device-specific commands (CCWs)—to be executed by I/O channels, control units and devices. EXCP for OS/360 and successors is more specifically described in the OS System Programmer's Guide.; EXCP for DOS/360 and successors is more specifically described in DOS Supervisor and I/O Macros. This article mostly reflects OS/360 through z/OS; some details are different for TOS/360 and DOS/360 through z/VSE.

<span class="mw-page-title-main">OS/360 and successors</span> Operating system for IBM S/360 and later mainframes

OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB and Input/Output Control System (IOCS) packages for the IBM 7090/7094 and even more so by the PR155 Operating System for the IBM 1410/7010 processors. It was one of the earliest operating systems to require the computer hardware to include at least one direct access storage device.

Basic Direct Access Method, or BDAM is an access method for IBM's OS/360 and successors computer operating systems on System/360 and later mainframes. BDAM "consists of routines used in retrieving data from, and storing data onto, direct access devices." BDAM is available on OS/360, OS/VS2, MVS, z/OS, and related high-end operating systems.

<span class="mw-page-title-main">OS/VS2 (SVS)</span>

Single Virtual Storage (SVS) refers to Release 1 of Operating System/Virtual Storage 2 (OS/VS2); it is the successor system to the MVT option of Operating System/360. OS/VS2 (SVS) was a stopgap measure pending the availability of MVS, although IBM provided support and enhancements to SVS long after shipping MVS.

The IBM Administrative Terminal System, also known as ATS/360, provided text- and data-management tools for working with documents to users of IBM System/360 systems.

In MVS/370 and successor versions of IBM mainframe operating systems, Start Input/Output (STARTIO) is a macro instruction and a "branch entry" for low-level device access, where the programmer is responsible for providing a list of device-specific CCWs, that is, a channel program, to be executed by I/O channels, control units and devices and a number of "exits", several of which may be immediate returns to the Input/Output Supervisor (IOS). Invokers of STARTIO must be in supervisor mode and key 0. STARTIO interfaces directly with the IOS component of MVS.

In IBM mainframe operating systems, Execute Channel Program in Real Storage (EXCPVR) is a 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 CCWs, that is, a 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", either prior to invoking EXCPVR or via the page fix appendage. EXCPVR can in some situations provide improved performance compared to EXCP.

The Input/Output Supervisor (IOS) is that portion of the control program in the IBM mainframe OS/360 and successors operating systems which issues the privileged I/O instructions and supervises the resulting I/O interruptions for any program which requests I/O device operations until the normal or abnormal conclusion of those operations.

In IBM mainframe operating systems, queued sequential access method (QSAM) is an access method to read and write datasets sequentially. QSAM is available on OS/360, OS/VS2, MVS, z/OS, and related operating systems.

Data Facility Storage Management Subsystem (DFSMS) is a central component of IBM's flagship operating system z/OS. It includes access methods, utilities and program management functions. Data Facility Storage Management Subsystem is also a collective name for a collection of several products, all but two of which are included in the DFSMS/MVS product.

References

  1. IBM System/360 Operating System System Programmer's Guide (PDF). IBM. March 1967. C28-6550-2.
  2. IBM System/360 Operating System Sequential Access Methods Program Logic Manual (PDF). IBM. January 1967. Y28-6604-1.