Misplaced Pages

Start Input/Output

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

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.

#588411

41-735: Start Input/Output differs from EXCP (including XDAP , which is simply a DASD-only subset of EXCP) and EXCPVR in the following fundamental way: Start Input/Output is a low level facility that supports, e.g., selection of channel paths, selection of exposures while Execute Channel Program is a high level facility that supports, e.g., CCW translation, page fixing, serialization of related requests, VIO. Callers of Execute Channel Program must be in TCB mode. While IBM documents EXCPVR as being privileged, some unprivileged access method code uses it for SAM-E processing of DASD data sets. Except for some special cases, an application may only use Execute Channel Program for

82-462: A Data Control Block (DCB) that it has OPENed (that is, it has been made accessible to the application by the system's OPEN/CLOSE/END-OF-VOLUME supervisor services, SVCs 19, 20 and 55, respectively). Callers of STARTIO must be privileged, must page fix all storage areas related to the request and must use global storage for the SRB / IOSB . They may refer to any device that has a real UCB, even if that device

123-457: A Device Descriptor Table (DDT), which identified routines needed for device dependent processing, e.g., handling of Attention interrupts, appending of RESERVE CCWs, appending of Set File Mask and Seek. Although use of STARTIO by customers is not supported by IBM, nevertheless its macro instruction and its associated "branch entry" have remained remarkably stable throughout the forty-year-long (as of 2014) transition from MVS/370 to z/OS, as STARTIO

164-477: 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 Start Input/Output interface (STARTIO) is available in MVS/370 and subsequent instances of

205-896: A lawsuit by IBM. The primary operating systems in use on current IBM mainframes include z/OS (which followed MVS/ESA and OS/390 in the OS/360 lineage), z/VM (which followed VM/ESA and VM/XA SP in the CP-40 lineage), z/VSE (which is in the DOS/360 lineage ), z/TPF (a successor of Transaction Processing Facility in the Airlines Control Program lineage), and Linux on IBM Z (e.g., Debian , Red Hat Enterprise Linux , SUSE Linux Enterprise Server ). Some systems run MUSIC/SP , as well as UTS (Mainframe UNIX) . In October 2008, Sine Nomine Associates introduced OpenSolaris on System z ; it has since been discontinued. Current IBM mainframes run all

246-422: A time. Later, IBM provided compilers for the newly developed higher-level programming languages Fortran , COMTRAN and later COBOL . The first operating systems for IBM computers were written by IBM customers who did not wish to have their very expensive machines (US$ 2M in the mid-1950s) sitting idle while operators set up jobs manually. These first operating systems were essentially scheduled work queues. It

287-454: 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 status modifier . Each CCW is a doubleword (eight bytes) as follows: The data address (8-31) is the 24-bit address of a main storage buffer area to or from which the data is to be transferred. The flag bits (32-36) are defined as follows: The count field (48-63) indicate

328-653: Is always in Task Control Block (TCB) mode, The normal mode for applications, as EXCP is a Type 1 SVC . In MVS/370 and subsequent instances of the OS, the EXCP processor invokes STARTIO to schedule execution of the channel program. Although the EXCP processor's back-end is always in Service Request Block (SRB) mode, the back-end contains emulation code which allows the appendages developed for earlier, pre-MVS instances of

369-469: Is available in the logic manual. Execute Channel Program 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

410-465: Is generally thought the first operating system used for real work was GM-NAA I/O , produced by General Motors ' Research division in 1956. IBM enhanced one of GM-NAA I/O's successors, the SHARE Operating System , and provided it to customers under the name IBSYS . As software became more complex and important, the cost of supporting it on so many different designs became burdensome, and this

451-569: 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 . Using EXCP, legacy devices and legacy datasets may be operated on with relatively high performance. EXCP devices are OPENed (that is, are made available to

SECTION 10

#1732876720589

492-505: Is not allocated to an address space, that is, the device need not be OPENed. STARTIO's initiation sequence, usually referred to as its "front end", may be in TCB mode or in SRB mode. STARTIO's termination sequence, usually referred to as its "back end", is always in SRB mode. STARTIO always utilizes an SRB/IOSB pair. The SRB (Service Request Block) is utilized to schedule processor activity, as required, on any available processor, in connection with

533-474: Is the sole method of performing lowest-level physical I/O operations on channel-attached devices on MVS/370 and subsequent instances of the OS. In particular, VSAM and VTAM use STARTIO, as, of course, do EXCP, XDAP and EXCPVR, and certain instances of IMS/VS and JES , most particularly where Channel-to-Channel operations are involved. An additional "branch entry" was added in ES/390, which performs essentially

574-645: The 1960s and 1970s, IBM dominated the computer market with the 7000 series and the later System/360 , followed by the System/370 . Current mainframe computers in IBM's line of business computers are developments of the basic design of the System/360. From 1952 into the late 1960s, IBM manufactured and marketed several large computer models, known as the IBM 700/7000 series . The first-generation 700s were based on vacuum tubes , while

615-509: The 360 and was mostly programmed in Fortran , which was relatively easy to adapt to larger machines when necessary. IBM also introduced smaller machines after S/360. These included: Midrange computer is a designation used by IBM for a class of computer systems which fall in between mainframes and microcomputers. IBM announced the System/360 (S/360) line of mainframes in April 1964. The System/360

656-551: The DEB resides in protected system storage, Subpool 253; in OS/VS1 and OS/VS2 EXCP uses DEBCHK to ensure that the DEB was created by OPEN. For DASD, EXCP checks that the seek address in the IOB is within one of the extents, and uses a Set File Mask to, e.g. indicate whether the extent is cylinder or track oriented, whether write is permitted; this prevents a seek out of the specified track (cylinder). If

697-842: The OS although it is not an officially supported interface. A variation of EXCP is Execute Direct Access Program (XDAP), which is used for accessing direct access storage only, and is provided for reading and updating existing direct access storage records. XDAP cannot be used to add records, but XDAP can be utilized along with BSAM or BPAM to effect record additions to such datasets, and several OS components utilize XDAP in this manner (the Linkage Editor, IEWL, in particular). EXCP may also be used to access communications devices attached to IBM 2701 , 2702 and 2703 communications controllers and IBM 370x or Amdahl 470x front-end processors (and their respective follow-ons) operating in emulator mode (EP) or partitioned emulator mode (PEP). EXCP's front-end

738-521: The OS). Normally, when a program OPENs a DCB for EXCP, OPEN creates a Data Extent Block (DEB) containing each extent for the first volume of the associated dataset; however, for parallel mount OPEN creates a DEB containing all extents for all volumes. Each DEB is forward- and backward-chained to the DCB, and EXCP checks the chaining as a system security measure, as the DCB resides in unprotected user storage whereas

779-526: 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. Appendages must reside in SYS1.SVCLIB (SYS1.LPALIB in SVS or later instances of

820-497: 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. 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

861-403: The System/360. However, models were upward compatible and most were also downward compatible. The System/360 was also the first computer in wide use to include dedicated hardware provisions for the use of operating systems . Among these were supervisor and application mode programs and instructions, as well as built-in memory protection facilities. Hardware memory protection was provided to protect

SECTION 20

#1732876720589

902-507: The application) by specifying the Data Control Block (DCB) for OS and the DTFPH for DOS. For OS/360 through z/OS, the program provides an Input/Output Block (IOB) to EXCP; if the program executes an EXCP to multiple IOBs, the system processes them in the order that they were requested. For DASD the IOB includes a seek address, IOBSEEK , in the format MBBCCHHR, where M is the extent, BB is

943-464: The best description of STARTIO and its application is a "white paper" entitled "The [ Start Input/Output Interface ] of MVS", written by Peter Haas, then with Amdahl Corp (subsequently liquidated). Haas's "white paper" contained an application program example which illustrated the required and optional parameters and exits employed by the STARTIO interface. A more detailed description of EXCP[VR] and STARTIO

984-477: The bin for a data cell, CCHH is the cylinder and head, and R is the record number. "An appendage is a programmer-written routine that provides additional control over I/O operations during channel program execution." A comprehensive list of appendages ( exits in the EXCP context) allows authorized programs 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

1025-560: The caller's "job step" TCB, which will be abnormally terminated, not whichever TCB happened to be active when the error was detected, which, by the basic design of IOS, which is run asynchronously to all tasks and all address spaces, could be any TCB in any address space, or, indeed, no TCB at all, e.g., an SRB, or, perhaps more likely, the System Wait Task (which runs in the OS Master Scheduler's address space). Perhaps

1066-583: The first System/370 models; the OS/VS1 variant of OS/360 MFT, the OS/VS2 (SVS) variant of OS/360 MVT, and the DOS/VS variant of DOS/360 were introduced to use the virtual memory capabilities, followed by MVS , which, unlike the earlier virtual-memory operating systems, ran separate programs in separate address spaces, rather than running all programs in a single virtual address space. The virtual memory capabilities also allowed

1107-499: The later System/370 was the ability to switch to emulation mode and back under operating system control. Operating systems for the System/360 family included OS/360 (with PCP, MFT, and MVT ), BOS/360 , TOS/360 , and DOS/360 . The System/360 later evolved into the System/370 , the System/390 , and the 64-bit zSeries, System z, and zEnterprise machines. System/370 introduced virtual memory capabilities in all models other than

1148-687: The later, second-generation 7000s used transistors . These machines established IBM's dominance in electronic data processing ("EDP"). IBM had two model categories: one (701, 704, 709, 7030, 7090, 7094, 7040, 7044) for engineering and scientific use, and one (702, 705, 705-II, 705-III, 7080, 7070, 7072, 7074, 7010) for commercial or data processing use. The two categories, scientific and commercial, generally used common peripherals but had completely different instruction sets , and there were incompatibilities even within each category. IBM initially sold its computers without any software, expecting customers to write their own; programs were manually initiated, one at

1189-463: The major enterprise transaction processing environments and databases , including CICS , IMS , WebSphere Application Server, IBM Db2 , and Oracle . In many cases these software subsystems can run on more than one mainframe operating system. There are software-based emulators for the System/370, System/390, and System z hardware, including FLEX-ES , which runs under UnixWare or Linux , and

1230-471: The number of CPs). There are other supporting processors typically installed inside mainframes such as cryptographic accelerators ( CryptoExpress ), the OSA-Express networking processor, and FICON Express disk I/O processors. Software to allow users to run "traditional" workloads on zIIPs and zAAPs was briefly marketed by Neon Enterprise Software as "zPrime" but was withdrawn from the market in 2011 after

1271-428: The number of bytes to be transferred by this command. All eight bits of commands that initiate I/O operations are passed to the device. "The modifier bits specify to the device how the command is to be executed." For example, for the IBM 2305 DASD the write command ('MMMMMM01'BX) may have the following values: IBM mainframe IBM mainframes are large computer systems produced by IBM since 1952. During

Start Input/Output - Misplaced Pages Continue

1312-411: The operating system from the user programs (tasks) and user tasks from each other. The new machine also had a larger address space than the older mainframes, 24 bits addressing 8-bit bytes vs. a typical 18 bits addressing 36-bit words. The smaller models in the System/360 line (e.g. the 360/30) were intended to replace the 1400 series while providing an easier upgrade path to the larger 360s. To smooth

1353-419: The programmer tries to read past the end of the track (cylinder), a unit check occurs and error recovery restarts the channel program with the next track (cylinder) of the current extent. If the operation goes beyond the end of the extent, EXCP calls the end of extent appendage, which may update the IOB and request either that EXCP reissue the request or that EXCP terminate it. EXCP is sometimes confused with

1394-479: The related I/O request, as the I/O request is not necessarily run by the processor in which the caller is running (indeed, in most cases it will not be). The IOSB (Input/Output Supervisor Block) describes the related I/O request, and passes parameters to and receives responses from IOS . IOS generally calls appendages in enabled SRB mode, but in special cases calls an appendage as a Disabled Interrupt Exit (DIE). The Unit Control Block (UCB) for each device points to

1435-456: The same function as the original, which was retained for compatibility with existing programs. This additional "branch entry" implicitly obtains the address of the related TCB (from PSATOLD), rather than explicitly obtaining it (from the TCB= keyword parameter) as the original "branch entry" did. Should a catastrophic error occur during IOS's processing of the related I/O request, it is this TCB, usually

1476-413: The smaller machines to the mainframes because so much software had to be rewritten. The 7010 was introduced in 1962 as a mainframe-sized 1410. The later Systems 360 and 370 could emulate the 1400 machines. A desk-size machine with a different instruction set, the IBM 1130 , was released concurrently with the System/360 to address the niche occupied by the 1620. It used the same EBCDIC character encoding as

1517-457: The system to support virtual machines ; the VM/370 hypervisor would run one or more virtual machines running either standard System/360 or System/370 operating systems or the single-user Conversational Monitor System (CMS). A time-sharing VM system could run multiple virtual machines, one per user, with each virtual machine running an instance of CMS. The IBM Z family, introduced in 2000 with

1558-414: The transition from the second generation to the new line, IBM used the 360's microprogramming capability to emulate the more popular older models. Thus 360/30s with this added cost feature could run 1401 programs and the larger 360/65s could run 7094 programs. To run old programs, the 360 had to be halted and restarted in emulation mode. Many customers kept using their old software and one of the features of

1599-481: The z900, supports z/Architecture , which extends the architecture used by the System/390 mainframes to 64 bits. The different processors on current IBM mainframes are: These are essentially identical, but distinguished for software cost control: all but CP are slightly restricted such they cannot be used to run arbitrary operating systems, and thus do not count in software licensing costs (which are typically based on

1640-474: Was a single series of compatible models for both commercial and scientific use. The number " 360 " suggested a "360 degree ," or "all-around" computer system. System/360 incorporated features which had previously been present on only either the commercial line (such as decimal arithmetic and byte addressing) or the engineering and scientific line (such as floating-point arithmetic ). Some of the arithmetic units and addressing features were optional on some models of

1681-556: Was one of the factors which led IBM to develop System/360 and its operating systems. The second generation (transistor-based) products were a mainstay of IBM's business and IBM continued to make them for several years after the introduction of the System/360. (Some IBM 7094s remained in service into the 1980s.) Prior to System/360, IBM also sold computers smaller in scale that were not considered mainframes, though they were still bulky and expensive by modern standards. These included: IBM had difficulty getting customers to upgrade from

Start Input/Output - Misplaced Pages Continue

#588411