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 earliestJust a few years after Atlas Supervisor, Burroughs MCP and GECOS operating systems to require the computer hardware to include at least one direct access storage device.
Although OS/360 itself was discontinued, successor operating systems, including the virtual storage MVS and the 64-bit z/OS, are still run and maintain application-level compatibility with OS/360.
Overview 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 II Multiple Priority Schedulers (MPS) Option 4 VMSVMS was unrelated to the VMS system for the DEC VAX. Multiprogramming with a Variable number of Tasks (MVT) Model 65 Multiprocessing (M65MP)
Users often coined nicknames, e.g., "Big OS", "OS/MFT", but none of these names had any official recognition by IBM.
IBM provided OS/360 as a set of libraries on tape that the installation had to restore to DASD in order to perform a system generation. IBM also offered a set of optional source tapes that the installation could use to modify and assemble modules that IBM normally provided as object code. In addition, IBM offered microfiche that had assembly listing of the basic program material and of subsequent service.Program Temporary Fixes were not available as source code. IBM continued distributing source code until it imposed an Object Code Only (OCO) policy for licensed software.
The other major operating system for System/360 hardware was DOS/360.
OS/360 is in the public domainOS/360 was distributed without copyright notices as to the software itself, leaving it to the public domain under contemporary (pre-1978) US law. 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 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.
Origin
IBM originally intended that System/360 should have only one batch-orientedIBM eventually provided interactive facilities for OS/360, e.g., CRJE, ITF, TSO. 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. IBM failed to meet OS/360's memory usage goal, and it required 44 KiB for even limited production. 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 Basic Programming Support (BPS) and 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 VSEn.
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.
OS/360 variants These three options offered such similar facilities that porting applications between them usually required minimal effort; the same versions of mostE.g., HASP could not run in PCP. 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 in the system generation (SysGen) a fixedThe operator could manually change them by entering a DEFINE command from an operator console, but the system did not automatically adjust them to match the workload. number of partitions, areas of memory with fixed boundaries, in which application programs can be run simultaneously.
PCP Primary Control Program (PCP) was intended for machines with small memories. It is similar to MFTBut not to MFT II 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.
MFT 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.
MFT Version II (MFT-II) shared much more of the Control Program and Scheduler code with MVT, and was much more flexible to run. The maximum number of partitions increased to 52.
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.
Experience indicated that it was not advisable to install MFT on systems with less than 256 KiB of memory, which in the 1960s was quite a large amount.
Also referred to as SYS=INT in macro expansions that were system-dependent.
MVT 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 unlimitedSubject to resource availability, e.g., memory for a region, protection key for an application region. 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/360IBM later added the ability to use VTAM for TSO, but only in MVS. 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.
M65MP 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.
Shared features 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.