OS/360 and successors
From Wikipedia, the free encyclopedia
It has been suggested that MFT (operating system), OS/VS1, MVT, MVS, MVS/XA, MVS/ESA and OS/390 be merged into this article or section. (Discuss) |
See also History of IBM mainframe operating systems
OS/360, officially known as IBM System/360 Operating System,[1] was a group of batch processing operating systems developed by IBM for their then-new System/360 mainframe computer, announced in 1964. They were among the earliest operating systems to make direct access storage devices a prerequisite for their operation.
The other major operating system for System/360 hardware was DOS/360.
History of IBM mainframe operating systems |
|
Contents |
[edit] Origins
IBM originally intended that System/360 should have only one batch-oriented operating system, OS/360.[2] It also intended to supply a separate timesharing operating system, TSS/360. There are at least two accounts of why IBM eventually decided to produce other, simpler batch-oriented operating systems: because it found that OS/360 would not fit into the limited memory available on the smaller System/360 models;[3] 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, card-only machines), then TOS/360 (Tape Operating System, for machines with only tape drives), and finally DOS/360 (Disk Operating System), which became a mainstream operating system and is the ancestor of to-day's widely used z/VSE.[4][3]
IBM released three variants of OS/360: PCP (Primary Control Program), a short-lived 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.[5] MFT and MVT were used until at least the late 1970s, a good five years after their successors had been launched.[6] It is unclear whether the division between OS/MFT and OS/MVT arose because MVT required too much memory to be usable on mid-range machines or because IBM needed to release a multiprogramming version of OS (MFT) as soon as possible. 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".[1][2]
TSS/360 was so late and unreliable that IBM cancelled it. 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.[7]
[edit] OS/MFT and OS/MVT
These two systems offered such similar facilities that porting applications between them usually required minimal effort, and the same versions of IBM "Program Products" (application and utility software) ran on both.
[edit] OS/MFT
MFT differed from MVT mainly in the way in which it managed memory: when installing MFT, customers would specify a fixed number of "partitions", areas of memory with fixed boundaries, in which application programs could be run simultaneously.[2]
Experience indicated that it was not advisable to install OS/MFT on systems with less than 256KB of memory, which was a lot in the 1960s.[8]
[edit] OS/MVT
OS/MVT was considerably larger and more complex than MFT and therefore was used on the most powerful System/360 CPUs. It treated all memory not used by the operating system as a single pool from which contiguous "regions" could be allocated as required by an indefinite number of simultaneous application 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.[2]
Shortly after the release of MVT, Time Sharing Option (TSO) was added. 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; debuggers for some of the programming languages used on System/360. TSO communicated with terminals by using TCAM (Telecommunications Access Method). TCAM's name suggests that IBM hoped it would become the standard access method for data communications, but in fact TCAM was used almost entirely for TSO and was largely superseded by VTAM in the mid to late 1970s.
[edit] Shared features of OS/MFT and OS/MVT
OS/MFT and OS/MVT provided very similar facilities from the point of view of application programs:
- The same application programming interface (API), so application programs could be transferred between MFT and MVT without even needing re-compilation.
- The same JCL (Job Control Language, for initiating batch jobs), which was more flexible and easier to use than that of DOS/360.
- The same facilities (access methods) for reading and writing files and for datacommunications:
- Sequential data sets were normally read 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 was defined as a key which could be used to look up specific records.
- In direct access (BDAM) files, the application program had to specify the physical location in a disk (track and block) of the data it wanted to access. 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.
- An additional file structure, partitioned, and access method (BPAM), was mainly used for managing program libraries. Although partitioned files needed to be compressed to reclaim free space, this seldom halted development work as it did with DOS/360's Core Image Library, because MFT and MVT allowed an indefinite number of partitioned files and each project generally had 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 a lot 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. But 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 allowed files to be managed as hierarchies, e.g. PROJECT.USER.FILENAME. This was simply a naming convention, as MFT and MVT lacked the concept of sub-directories; but it enabled users to list all files in a group or sub-group.
- A spooling facility (which DOS/360 lacked).
- Applications could create sub-tasks, which allowed multiprogramming within the one job.
[edit] 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.[9] 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.[10][11]
[edit] OS/VS1
OS/VS1 was the successor to OS/MFT, and offered identical facilities apart from the addition of virtual memory and VSAM (see below).[2] IBM released fairly minor enhancements of OS/VS1 until 1983, and in 1984 announced that there would be no more. OS/VS1 is the only System/370 operating system which does not have a modern descendant.
[edit] OS/VS2 and MVS
OS/VS2 was initially just OS/MVT plus virtual memory and VSAM (see below).[2] But 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 new system had been largely rewritten in a new language, PL/S, which was a dialect of PL/I with extensions designed to generate the privileged instructions needed to control the computer as a whole.
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 consisted of 3 areas: operating system (one instance shared by all jobs); an application area which was unique for each application; shared virtual area which was 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.[2] 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".[12]
MVS introduced a new approach to workload management, allowing users to define performance targets for high-priority batch jobs. This enabled users to to give their systems more work than before without affecting the performance of the highest-priority jobs.[13]
MVS was IBM's first mainstream operating system to support what IBM called "tightly-coupled multiprocessing", in which 2 (later up to 8) CPUs shared concurrent access to the same memory (and copy of the operating system) and peripherals, providing greater processing power and a degree of graceful degradation if one CPU failed.
Initially MVS was supplied with a job queue manager called JES2 (Job Entry Subsystem 2), which was descended from HASP (Houston Automated Spooling Program) and also supported Remote Job Entry from workstations located elsewhere. JES2 could 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 allowed one CPU to manage a single job queue feeding work to several physically distinct CPUs, and therefore allowed one operator's console to manage the work of all those CPUs.[14] Note: JES1 was the job queue manager for OS/VS1 (see above).
[edit] VSAM
IBM hoped that VSAM would replace its earlier sequential, indexed and direct access methods as it provided improved versions of these:[15][16]
- 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 allowed secondary keys with non-unique values and keys formed by concatenating non-contiguous fields in any order; they greatly reduced the performance problems caused by overflow records in ISAM; and they greatly reduced the risk that a software or hardware failure in the middle of an index update might corrupt the index. VSAM provided an ISAM / VSAM Interface which allowed ISAM-based applications to use VSAM KSDS without reprogramming.[17]
- 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.
These VSAM formats became the basis of IBM's database management systems, IMS/VS and DB2 - usually ESDS for the actual data storage and KSDS for indexes.
VSAM also provides a 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.[16]
[edit] SNA
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 was only available for users of IBM's virtual memory operating systems, since its mainframe software component, VTAM was only available with these operating systems.
[edit] Later MVS versions and enhancements
In 1977 IBM announced MVS/System Extensions, a "program product" (i.e. it cost extra money) which improved MVS performance.[18]
[edit] Later development
When virtual addressing hardware was later developed for the System/370, the OS/360 systems were upgraded and renamed; MFT became OS/VS1 and MVT became OS/VS2. OS/VS2 was announced in two forms: OS/VS2 Release 1, aka SVS (Single Virtual Storage) and OS/VS2 Release 2, aka MVS (Multiple Virtual Storage). SVS was intended as a stepping stone from MVT to MVS, and is only of historical interest today. MVS is still used on the latest members of the IBM 360 Series and its successors, the System/370, System/390 and zSeries, although it has been known by several other names as time went by, most recently OS/390, now known as z/OS.
As of the turn of the millennium, the original 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 GNU/Linux, Windows, and Mac OS X.
[edit] References
- ^ a b IBM (1972). OS/360 Introduction, IBM Systems Reference Library. GC28-6534-3. Retrieved during 2007.
- ^ a b c d e f g 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”, IBM Systems Journal (IBM) 4, <http://www.research.ibm.com/journal/sj/124/ibmsj1204D.pdf>
- ^ a b Johnston (April 1, 2005). "VSE: A Look at the Past 40 Years". z/Journal (April/May 2005). Thomas Communications, Inc..
- ^ Chuck Boyer, The 360 Revolution
- ^ Introduction, op. cit., page 50
- ^ The midseventies SHARE survey by an IBM user group
- ^ The IBM 360/67 and CP/CMS
- ^ Ray Saunders, "MVS... And Before OS/360 ?"
- ^ 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.
- ^ (1991) IBM's 360 and Early 370 Systems. MIT Press. ISBN 0262161230.
- ^ 3033 Technical press release
- ^ Implementing MVS workload management
- ^ Job Entry Subsystem 3 (JES3) Automation
- ^ VSAM Demystified
- ^ a b VSAM Tutorial
- ^ ISAM / VSAM Interface
- ^ 3033 Press announcement
[edit] Further reading
- Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). IBM's 360 and Early 370 Systems. MIT Press, Cambridge, MA. (pp. 291-345)
This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.