OS/360 and successors
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 heavily influenced by the earlier IBSYS/IBJOB and Input/Output Control System (IOCS) packages. It was one of the earliest operating systems to require the computer hardware to include at least one direct access storage device.
|Written in||Assembly language, Basic Systems Language (BSL)|
|OS family||OS/360 and successors|
|Initial release||March 31, 1966|
|Marketing target||IBM mainframe computers|
|Succeeded by||OS/VS1, OS/VS2 (SVS), OS/VS2 (MVS), MVS/SE, MVS/SP Version 1, MVS/XA, MVS/ESA, OS/390, z/OS|
|History of IBM mainframe operating systems|
IBM announced three different levels of OS/360, generated from the same tapes and sharing most of their code. IBM eventually renamed these options and made some significant design changes:
- Single Sequential Scheduler (SSS)
- Option 1
- Primary Control Program (PCP)
- Multiple Sequential Schedulers (MSS)
- Option 2
- Multiprogramming with a Fixed number of Tasks (MFT)
- MFT 2
- Multiple Priority Schedulers (MPS)
Users often coined nicknames, e.g., Big OS, OS/MFT, but none of these names had any official recognition by IBM.
The other major operating system for System/360 hardware was DOS/360.
OS/360 is in the public domain and can be downloaded freely. As well as being run on actual System/360 hardware, it can be executed on the free Hercules emulator, which runs under most UNIX and Unix-like systems including GNU/Linux, Solaris, and macOS, as well as Windows. There are OS/360 turnkey CDs that provide pregenerated OS/360 21.8 systems ready to run under Hercules.
IBM originally intended that System/360 should have only one batch-oriented operating system, OS/360, capable of running on machines as small as 32 KiB. It also intended to supply a separate timesharing operating system, TSS/360, for the System/360 Model 67. There are at least two accounts of why IBM eventually decided to produce other, simpler batch-oriented operating systems:
- because it found that the "approximately 1.5 million instructions that enable the system to operate with virtually no manual intervention" comprising OS/360 would not fit into the limited memory available on the smaller System/360 models; or
- because it realized that the development of OS/360 would take much longer than expected.
IBM introduced a series of stop-gaps to prevent System/360 hardware sales from collapsing—first BOS/360 (Basic Operating System, for the smallest machines with 8K byte memories), then TOS/360 (Tape Operating System, for machines with at least 16K byte memories and only tape drives), and finally DOS/360 (Disk Operating System), which became a mainstream operating system and is the ancestor of today's widely used z/VSE.
IBM released three variants of OS/360: PCP (Primary Control Program), a stop-gap which could run only one job at a time, in 1966; MFT (Multiprogramming with Fixed number of Tasks) for the mid-range machines, and MVT (Multiprogramming with Variable number of Tasks) for the top end. MFT and MVT were used until at least 1981, a decade after their successors had been launched. The division between MFT and MVT arose because of storage limitations and scheduling constraints. Initially IBM maintained that MFT and MVT were simply "two configurations of the OS/360 control program", although later IBM described them as "separate versions of OS/360".
IBM originally wrote OS/360 in assembly language. Later on, IBM wrote some OS/360 code in a new language, Basic Systems Language (BSL), derived from PL/I. A large amount of the TSO code in Release 20 was written in BSL.
TSS/360 was so late and unreliable that IBM canceled it, although IBM later supplied three releases of the TSS/370 PRPQ. By this time CP-67 was running well enough for IBM to offer it without warranty as a timesharing facility for a few large customers.
These three options offered such similar facilities that porting applications between them usually required minimal effort; the same versions of IBM Program Products, application and utility software ran on both. The text below mostly treats PCP, MFT and MVT as simply new names for the original SSS, MSS and MPS, although there were some design changes. Also, the text does not distinguish between M65MP and MVT.
Officially, PCP, MFT and MVT are not separate operating systems from OS/360, they are only install-time configuration options—in today's words, three different variants of the OS Nucleus and Scheduler. However, because of quite different behavior and memory requirements, users commonly consider them de facto separate operating systems, and refer to them as "early OS/360", "OS/MFT", "OS/MVT", respectively. MFT differs from MVT mainly in the way in which it manages memory: when installing MFT, customers specify a fixed number of "partitions", areas of memory with fixed boundaries, in which application programs can be run simultaneously.
Primary Control Program (PCP) was intended for machines with small memories. It is similar to MFT with one partition. Experience indicated that it was not advisable to install OS/360 on systems with less than 128 KiB of memory, although limited production use was possible on much smaller machines, such as 48 KiB of memory. IBM dropped the PCP option in the final releases of OS/360, leaving only MFT II and MVT, both of which required more memory.
Also referred to as SYS=MIN in macro expansions that were system-dependent.
Multiprogramming with a Fixed number of Tasks (MFT) was intended to serve as a stop-gap until Multiprogramming with a Variable number of Tasks (MVT), the intended "target" configuration of OS/360, became available in 1967. Early versions of MVT had many problems, so the simpler MFT continued to be used for many years. After introducing new System/370 machines with virtual memory in 1972, IBM developed MFT 2 into OS/VS1, the last system of this particular line.
The first version of MFT shared much of the code and architecture with PCP, and was limited to four partitions. It was very cumbersome to run multiple partitions. Many installations used Houston Automatic Spooling Priority (HASP) to mitigate the complexity.
Later modifications of MFT-II added sub-tasking, so that the fixed number of tasks was no longer fixed, although the number of partitions did remain a limitation.
Also referred to as SYS=INT in macro expansions that were system-dependent.
Multiprogramming with a Variable number of Tasks (MVT) was the most sophisticated of three available configurations of OS/360's control program, and one of two available configurations in the final releases. MVT was intended for the largest machines in the System/360 family. Introduced in 1964, it did not become available until 1967. Early versions had many problems and the simpler MFT continued to be used for many years. Experience indicated that it was not advisable to install MVT on systems with less than 512 KiB of memory
MVT treated all memory not used by the operating system as a single pool from which contiguous "regions" could be allocated as required by an unlimited number of simultaneous application and systems programs. This scheme was more flexible than MFT's and in principle used memory more efficiently, but was liable to fragmentation - after a while one could find that, although there was enough spare memory in total to run a program, it was divided into separate chunks none of which was large enough. System/360 lacked memory relocation hardware so memory compaction could not be used to reduce fragmentation. A facility called Rollout/Rollin could swap a running job out to secondary storage to make its memory available to another job. The rolled-out job would, however, have to be "rolled-in" to the original memory locations when they again became available.
In 1971 the Time Sharing Option (TSO) for use with MVT was added as part of release 20.1. TSO became widely used for program development because it provided an editor, the ability to submit batch jobs, be notified of their completion, and view the results without waiting for printed reports, and debuggers for some of the programming languages used on System/360. TSO in OS/360 communicated with terminals by using Telecommunications Access Method (TCAM). TCAM's name suggests that IBM hoped it would become the standard access method for data communications, but in fact TCAM in OS/VS2 was used almost entirely for TSO and was largely superseded by Virtual Telecommunications Access Method (VTAM) in the mid-to-late 1970s.
Also referred to as SYS=VMS in invocations of some macros that were system-dependent.
Model 65 Multiprocessing (M65MP) is a variant of MVT. It runs on a 360/65 in Multisystem mode M65MP traps use of the Set System Mask (SSM) instruction to serialize disabled code between the two CPUs. For the most part an M65MP system has the same behavior and interfaces as any other MVT system.
The keyword parameter SYS=VMS included M65MP as well as uniprocessor MVT.
PCP, MFT and MVT provide similar facilities from the point of view of application programs:
- The same application programming interface (API) and application binary interface (ABI), so application programs can be transferred between MFT and MVT without even needing to be modified or re-assembled or re-compiled.
- The same JCL (Job Control Language, for initiating batch jobs), which was more flexible and easier to use, though more complex, than that of DOS/360.
- The same facilities (access methods) for reading and writing files and for data communications:
- Sequential data sets are normally read or written one record at a time from beginning to end, using BSAM or QSAM. This was the only technique that could be used for tape drives, card readers / punches and printers.
- In indexed (ISAM) files a specified section of each record is defined as a key which can be used to look up specific records.
- In direct access (BDAM) files, the application program has to specify the relative block number, the relative track and record (TTR) or the actual physical location (MBBCCHHR) in a Direct-access storage device (DASD) of the data it wanted to access, or the starting point for a search by key. BDAM programming was not easy and most organizations never used it themselves; but it was the fastest way to access data on disks and many software companies used it in their products, especially database management systems such as ADABAS, IDMS and IBM's DL/I. It is also available from OS/360 Fortran. BDAM datasets are unblocked, with one logical record per physical record.
- An additional file structure, partitioned, and access method (BPAM), is mainly used for managing program libraries. Although partitioned files need to be compressed to reclaim free space, this has less impact than did a similar requirement for DOS/360's Core Image Library, because MFT and MVT allow multiple partitioned datasets and each project generally has at least one.
- Generation Data Groups (GDGs) were originally designed to support grandfather-father-son backup procedures - if a file was modified, the changed version became the new "son", the previous "son" became the "father", the previous "father" became the "grandfather" and the previous "grandfather" was deleted. But one could set up GDGs with more than 3 generations, and some applications used GDGs to collect data from large and variable numbers of sources and feed the information to one program - each collecting program created a new generation of the file and the final program read the whole group as a single sequential file (by not specifying a generation in the JCL).
- BTAM, a data communications facility, was primitive and hard to use by today's standards. However, it could communicate with almost any type of terminal, which was a big advantage at a time when there was hardly any standardization of communications protocols.
- The file naming system allows files to be managed as hierarchies, e.g. PROJECT.USER.FILENAME. This is simply a naming convention, as MFT and MVT lack the concept of sub-directories; but it enables users to list all files in a group or sub-group.
Shared features excluding PCP
Some features were available only for MFT and MVT:
- A SPOOLing facility for MFT II and MVT (which DOS/360 initially lacked, but was, later, provided by the POWER application).
- Applications in MFT (Release 19 and later) and MVT could create sub-tasks, which allowed multitasking (multithreading) within the one job.
- Graphic Job Processing
- Satellite Graphic Job Processing
- Remote Job Entry
- Queued Telecommunications Access Method (QTAM)
- Telecommunications Access Method (TCAM)
System/370 and virtual memory operating systems
When System/370 was announced in 1970 it offered essentially the same facilities as System/360 but with about 4 times the processor speeds of similarly priced System/360 CPUs. Then in 1972 IBM announced "System/370 Advanced Functions", of which the main item was that future sales of System/370 would include virtual memory capability and this could also be retro-fitted to existing System/370 CPUs. Hence IBM also committed to delivering enhanced operating systems which could support the use of virtual memory.
IBM provided an OS/360 SYSGEN option for S/370 support, which did not support DAT but did:
OS/VS1 is the successor to MFT, and offers similar facilities with several additions, e.g., RES, virtual memory. VSAM (see below) was initially available as an independent component release (ICR) and later integrated into the OS/VS1 base. IBM released fairly minor enhancements of OS/VS1 until 1983, and in 1984 announced that there would be no more. AIX/370, AIX/ESA, DPPX, IX/370, OS/VS1 and TSS/370 are the only System/370 operating systems that do not have modern descendants.
OS/VS2 SVS and MVS
OS/VS2 release 1 was just MVT plus virtual memory and VSAM (see below). This version was eventually renamed OS/VS2 SVS, for Single Virtual Storage, when OS/VS2 Release 2, also known as MVS, for Multiple Virtual Storage, was introduced. SVS was intended as a stepping stone from MVT to MVS, and is only of historical interest today.
In 1974 IBM released what it described as OS/VS2 Release 2 but which was really a new operating system that was upwards-compatible with OS/VS2 Release 1. The Supervisor of the new system had been largely rewritten in a new dialect of BSL, PL/S; BSL and PL/S were dialects of PL/I with extensions designed to transcribe Assembly language code, including privileged instructions needed to control the computer as a whole. Time-sensitive OS components, such as the OS Dispatcher and the IOS, notably, among many others, remained coded in Assembly Language, which had been enhanced for OS/VS in the IFOX00 Assembler (from the older, OS/360 IEUASM Assembler).
|MVS address spaces - global view
|One application's view
The new version's most noticeable feature was that it supported multiple virtual address spaces - different applications thought they were using the same range of virtual addresses, but the new system's virtual memory facilities mapped these to different ranges of real memory addresses. Each application's address space consists of 3 areas: operating system (one instance shared by all jobs); an application area which was unique for each application; shared virtual area used for various purposes including inter-job communication. IBM promised that the application areas would always be at least 8MB. This approach eliminated the risk of memory fragmentation that was present in MVT and SVS, and improved the system's internal security. The new system rapidly became known as "MVS" (Multiple Virtual Storages), the original OS/VS2 became known as "SVS" (Single Virtual Storage) and IBM itself accepted this terminology and labelled MVS's successors "MVS/xxx".
MVS introduced a new approach to workload management, allowing users to define performance targets for high-priority batch jobs. This enabled users to give their systems more work than before without affecting the performance of the highest-priority jobs.
MVS was IBM's first mainstream operating system on the System/370 to support what IBM called "tightly coupled multiprocessing", in which 2 (later, up to 12, for IBM mainframes, and up to 16, for Amdahl mainframes) CPUs shared concurrent access to the same memory (and a single copy of the operating system and peripheral devices), providing greater processing power and a degree of graceful degradation if one CPU failed (which, fortunately, became an increasingly rare event, as system "up time" rose from hours to days and, then, to years.)
Initially MVS was supplied with a job queue manager called JES2 (Job Entry Subsystem 2), which was descended from HASP (Houston Automatic Spooling Priority) and also supported Remote Job Entry from workstations located elsewhere. JES2 can only manage jobs for one CPU (which might be a tightly coupled multiprocessor system). In 1976 IBM provided another option, JES3 (Job Entry Subsystem 3), a descendant of ASP (Attached Support Processor), which allows one CPU to manage a single job queue feeding work to several physically distinct CPUs, and therefore allows one operator's console to manage the work of all those CPUs. Note: JES1 was the job queue manager for OS/VS1 (see above).
IBM hoped that Virtual storage access method (VSAM) would replace its earlier sequential, indexed and direct access methods as it provided improved versions of these:
- Entry-Sequenced Datasets (ESDS) provide facilities similar to those of both sequential and BDAM (direct) datasets, since they can be read either from start to finish or directly by specifying an offset from the start.
- Key-Sequenced Datasets (KSDS) are a major upgrade from IBM's ISAM: they allow secondary keys with non-unique values and keys formed by concatenating non-contiguous fields in any order; they greatly reduce the performance problems caused by overflow records used to handle insertions and updates in ISAM; and they greatly reduce the risk that a software or hardware failure in the middle of an index update might corrupt the index. VSAM provides an ISAM / VSAM Interface which allows ISAM-based applications to use VSAM KSDS without reprogramming.
- Relative Record Datasets (RRDS) are a replacement for direct access (BDAM) datasets, allowing applications to access a record by specifying a relative record number. Unlike ESDS and KSDS, RRDS does not support variable-length records.
VSAM also provides a new implementation of the catalog facility which enables applications to access files by name, without needing to know which disk drive(s) they are on. VSAM datasets must be defined in a VSAM catalog before they are used, and non-VSAM datasets can also be listed in a VSAM catalog. The MVS Master Catalog must be a VSAM catalog. Catalogs were originally provided in OS/360 in the form of CVOLs; MVS added a separate catalog structure for VSAM; later IBM added a third type of catalog known as an ICF catalog. (IBM removed support for CVOL and VSAM catalogs as of 2000, since they were not Y2K-compliant; hence in z/OS, only ICF catalogs are supported.)
In 1974 IBM announced Systems Network Architecture, which was meant to reduce the cost of running large networks of terminals, mainly by using communications lines much more efficiently. This is only available for IBM's virtual memory operating systems, since its mainframe software component, VTAM is only available with these operating systems.
Later MVS versions and enhancements
These data are taken from IBM 360 Operating Systems Release History, System/370 Market Chronology of Products & Services, IBM. "z/OS, z/OS.e, and OS/390 marketing and service announce, availability, and withdrawal dates". and IBM announcement letters.
|1964-04||1965-11||1||Operating System/360 prerelease|
Single Sequential Scheduler
|1964-04||1966-11||OS/360 Multiple Sequential Scheduler|
MFT-II, VTOC positioning
SMF for MVT
SMF for MFT, MFT Attach, 1285/87/88 support
|5741||1972-08||1973-??||1||Operating System/Virtual Storage 1 (OS/VS1)|
|5742-SC1||1972-08||1972-??||1||Operating System/Virtual Storage 2 (OS/VS2) (Single Virtual Storage) (SVS)|
|5752-VS2||1972-08||1974-??||2||Operating System/Virtual Storage 2 (OS/VS2) (Multiple Virtual address Spaces) (MVS) with Job Entry Subsystem 2 (JES2)|
|5752-VS2||1972-??||1975-10||2||Operating System/Virtual Storage 2 (OS/VS2) MVS with Job Entry Subsystem 3 (JES3)|
|5752-VS2||??||?||2.1||Operating System/Virtual Storage 2 (OS/VS2) MVS with Job Entry Subsystem 3 (JES3)|
|5752-VS2||1975-??||1975-10||3||Operating System/Virtual Storage 2 (OS/VS2) MVS with Job Entry Subsystems 2 and 3 (JES2 and JES3)|
|5752-VS2||?||?||3.6||Operating System/Virtual Storage 2 (OS/VS2) MVS with Job Entry Subsystems 2 and 3 (JES2 and JES3)|
|5752-VS2||1976-11||?||3.7||Operating System/Virtual Storage 2 (OS/VS2) MVS with Job Entry Subsystems 2 and 3 (JES2 and JES3)|
|5752-VS2||1979-??||?||3.8||Operating System/Virtual Storage 2 (OS/VS2) MVS with Job Entry Subsystems 2 and 3 (JES2 and JES3)|
|5740-XE1||1979-??||?||1||MVS/System Extensions (MVS/SE)|
|5740-XE1||1979-03||1979-08||2||MVS/System Extensions (MVS/SE2)|
|5740-XYS||1980-06||1980-12||1||MVS/System Product Version 1 JES2 (MVS/SP 1.1)|
|5740-XYN||1980-06||1980-12||1||MVS/System Product Version 1 JES3 (MVS/SP 1.1)|
|5740-XYS||1980-06||1981-06||2||MVS/System Product Version 1 JES2 (MVS/SP 1.2)|
|5740-XYN||1980-06||1981-06||2||MVS/System Product Version 1 JES3 (MVS/SP 1.2)|
|5740-XYS||1980-11||1981-10||3||MVS/System Product Version 1 JES2 (MVS/SP 1.3)|
|5740-XYN||1980-11||1981-10||3||MVS/System Product Version 1 JES3 (MVS/SP 1.3)|
|5740-XC6||1981-10||1983-03||1||MVS/System Product - JES2 Version 2 (MVS/Extended Architecture) (MVS/XA)|
|5740-XC6||1981-10||1983-03||1||MVS/System Product - JES3 Version 2 (MVS/Extended Architecture) (MVS/XA)|
|5685-001||1988-02||1988-07||1||MVS/System Product - JES2 Version 3 (MVS/Enterprise System Architecture) (MVS/ESA)|
|5685-002||1988-02||1988-07||1||MVS/System Product - JES3 Version 3 (MVS/Enterprise System Architecture) (MVS/ESA)|
|5685-047||1990-09-05||1990-10-26||1994-03-31||1||MVS/ESA SP - JES2 Version 4|
|5685-047||1990-09-05||1992-12-31||1999-06-30||2||MVS/ESA SP - JES2 Version 4|
|5685-047||1992-06-18||1993-03-26||1999-06-30||3||MVS/ESA SP - JES2 Version 4|
|5685-048||1990-09||1990-10||1999-06-30||1||MVS/ESA SP - JES3 Version 4|
|5655-068||1994-04-05||1994-06-24||2001-01-31||1||MVS/ESA SP - JES2 Version 5|
|1995-06-30||2001-03-31||2||MVS/ESA SP - JES2 Version 5|
|5655-069||1994-09-13||1995-29-13||2001-03-31||2.1||MVS/ESA SP - JES3 Version 5|
|2.2||MVS/ESA SP - JES3 Version 5|
|2001-01-31||1||OS/390 Version 1|
|1996-09-27||2001-01-31||2||OS/390 Version 1|
|2001-03-31||3||OS/390 Version 1|
|2001-03-31||4||OS/390 Version 2|
|5||OS/390 Version 2|
|2002-03-31||6||OS/390 Version 2|
|2002-03-31||7||OS/390 Version 2|
|2002-09-30||8||OS/390 Version 2|
|2003-03-31||9||OS/390 Version 2|
|2004-09-30||10||OS/390 Version 2|
|2001-03-30||2004-03-31||1||z/OS Version 1|
|2001-10-26||2004-10-31||2||z/OS Version 1|
|2002-03-29||2005-03-31||3||z/OS Version 1|
|2002-09-27||2007-03-31||4||z/OS Version 1|
|2004-03-26||2007-03-31||5||z/OS Version 1|
|2004-09-24||2007-09-30||6||z/OS Version 1|
|2005-09-30||2008-09-30||7||z/OS Version 1|
|2006-09-29||2009-09-30||8||z/OS Version 1|
|2007-09-28||2010-09-30||9||z/OS Version 1|
|2008-09-26||2011-09||10||z/OS Version 1|
|2009-09-25||2013-09||11||z/OS Version 1|
|2010-09-24||2015-09||12||z/OS Version 1|
|2011-09-30||(2017-09)||13||z/OS Version 1|
|2013-09-30||(2019-09)||Old version, no longer supported: 1||z/OS Version 2|
|2015-09-30||(2021-09)||Older version, yet still supported: 2||z/OS Version 2|
|2017-09-27||?||Older version, yet still supported: 3||z/OS Version 2|
|2019-09-30||?||Current stable version: 4||z/OS Version 2|
- VMS was unrelated to the VMS system for the DEC VAX.
- IBM eventually provided interactive facilities for OS/360, e.g., CRJE, ITF, TSO.
- IBM failed to meet this goal, and OS/360 required 44 KiB for even limited production.
- But not to MFT II
- Subject to resource availability, e.g., memory for a region, protection key for an application region.
- IBM later added the ability to use VTAM for TSO, but only in MVS.
- The dataset should have the unmovable attribute.
- But not IDAL
- Also shipped with DOS/VS and VM/370.
- OS/360 M65MP and TSS/360 supported SMP.
- IBM Operating System/360 Concepts and Facilities (PDF). IBM. 1965. C28-6535-0.
- OS/360 Introduction (PDF). IBM Systems Reference Library. IBM. 1972. GC28-6534-3.
- "IBM OS/360 OPERATING SYSTEM". Encyclopedia Britannica. Retrieved Mar 11, 2019.
- Auslander, M. A.; Jaffe, J. F. (1973). "Functional structure of IBM virtual storage operating systems Part I: Influences of dynamic address translation on operating system technology" (PDF). IBM Systems Journal. 4. IBM.
- "System/360 Model 91". IBM Archives. IBM.
- Johnston (April 1, 2005). "VSE: A Look at the Past 40 Years". z/Journal. Thomas Communications, Inc. (April/May 2005). Archived from the original on March 4, 2009.
- Chuck Boyer, The 360 Revolution
- Introduction, op. cit., page 50
- T.Y. Johnston. "Moving To a Total VM Environment" (PDF). Stanford Linear Accelerator Center.
- "The midseventies SHARE survey". Archived from the original on 2008-05-12.
- BSL Language Specifications (PDF). IBM. Z28-6642-0.
- The IBM 360/67 and CP/CMS
- IBM System/360 Operating System Multiprogramming With a Fixed Number of Tasks (MFT) Concepts and Considerations (PDF). First Edition. IBM. October 1966. GC27-6926-0.
- Planning for Multiprogramming With a Fixed Number of Tasks Version II (MFT II) (PDF). First Edition. IBM. October 1967. C27-6939-0.
- Ray Saunders. "MVS... And Before OS/360 ?". Archived from the original on 2007-12-20.
- IBM System/3S0 Operating System MVT Guide OS Release 21 (PDF). Fifth Edition. IBM. March 1972. GC28-6720-4.
- OS/360 Introduction (PDF). IBM Systems Reference Library. IBM. 1972. pp. 50–51. GC28-6534-3.
there are two configurations of the [OS/360] control program: ... MVT configuration
- IBM Corporation (1973). OS System Generation Release 21 (PDF). p. 182.
- "Appendix A. Multiprocessing System". IBM System/360 Model 65 Punctional Characteristics (PDF). Fourth Edition. IBM. September 1968. pp. 30–34. A22-6884-3.
- "System/370 Announcement". IBM. June 30, 1970.
- "DPD chronology (1970–1974)". IBM. DPD = Data Processing Division, which was responsible for IBM's medium and large systems.
- Pugh, E.W., Johnson, L.R. and Palmer, J.H. (1991). IBM's 360 and Early 370 Systems. MIT Press. ISBN 0-262-16123-0.CS1 maint: multiple names: authors list (link)
- Guide to PL/S Generated Listings. First Edition. IBM. July 1972. GC28-6786-0.
- Guide to PL/S II (PDF). First Edition. IBM. May 1974. GC28-6794-0.
- 3033 Technical press release
- Implementing MVS workload management
- Job Entry Subsystem 3 (JES3) Automation
- VSAM Demystified
- Jay Moseley (January 17, 2015). "VSAM Tutorial".
- ISAM / VSAM Interface
- Sawyer, Peter (March 3, 1989). SVC 26 and What It Can Do. SHARE.
- Pryor, Steve (February 2003). "Where's the data? Obtaining informating from the catalog" (PDF). Technical Support. NaSPA. Retrieved 2017-03-05.
- 3033 Press announcement
- Brooks, Jr., Frederick P. (1975). "The Mythical Man-Month: Essays on Software Engineering", Addison-Wesley. ISBN 0-201-00650-2. (Reprinted with corrections, January 1982)
- Binder, Robert V. (1985). "Application Debugging: An MVS Abend Handbook for Cobol, Assembly, PL/I, and Fortran Programmers ", Prentice-Hall. ISBN 0130393487.
- Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). IBM's 360 and Early 370 Systems, Cambridge : MIT Press. (pp. 291–345)