History of IBM mainframe operating systems
Encyclopedia
The history of operating systems running on IBM mainframes is a notable chapter of history of mainframe operating systems, because of IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

's long-standing position as the world's largest hardware supplier of mainframe computer
Mainframe computer
Mainframes are powerful computers used primarily by corporate and governmental organizations for critical applications, bulk data processing such as census, industry and consumer statistics, enterprise resource planning, and financial transaction processing.The term originally referred to the...

s.

Arguably the operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s which IBM supplied to customers for use on its early mainframes
IBM mainframe
IBM mainframes are large computer systems produced by IBM from 1952 to the present. During the 1960s and 1970s, the term mainframe computer was almost synonymous with IBM products due to their marketshare...

 have seldom been very innovative, except for the virtual machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...

 systems beginning with CP67. But the company's well-known reputation for preferring proven technology has generally given potential users the confidence to adopt new IBM systems fairly quickly. IBM's current mainframe operating systems, z/OS
Z/OS
z/OS is a 64-bit operating system for mainframe computers, produced by IBM. It derives from and is the successor to OS/390, which in turn followed a string of MVS versions.Starting with earliest:*OS/VS2 Release 2 through Release 3.8...

, z/VM
Z/VM
z/VM is the current version in IBM's VM family of virtual machine operating systems. z/VM was first released in October 2000 and remains in active use and development . It is directly based on technology and concepts dating back to the 1960s, with IBM's CP/CMS on the IBM System/360-67...

, z/VSE, and z/TPF, are backwards compatible successors to operating systems introduced in the 1960s, although of course they have been improved in many ways.

Both IBM-supplied operating systems and those supplied by others are discussed here, if notably used on IBM mainframes.

Before System/360

IBM was slow to introduce operating systems: General Motors
General Motors
General Motors Company , commonly known as GM, formerly incorporated as General Motors Corporation, is an American multinational automotive corporation headquartered in Detroit, Michigan and the world's second-largest automaker in 2010...

 produced General Motors OS in 1955 and GM-NAA I/O
GM-NAA I/O
The GM-NAA I/O input/output system of General Motors and North American Aviation was the first operating system for the IBM 704 computer.It was created in 1956 by Robert L. Patrick of General Motors Research and Owen Mock of North American Aviation...

 in 1956 for use on its own IBM computers; and in 1962 Burroughs Corporation released MCP
MCP (Burroughs Large Systems)
The MCP is the proprietary operating system of the Burroughs large systems including the Unisys Clearpath/MCP systems....

 and General Electric
General Electric
General Electric Company , or GE, is an American multinational conglomerate corporation incorporated in Schenectady, New York and headquartered in Fairfield, Connecticut, United States...

 introduced GECOS
General Comprehensive Operating System
General Comprehensive Operating System is a family of operating systems oriented toward mainframe computers.The original version of GCOS was developed by General Electric from 1962; originally called GECOS...

, in both cases for use by their customers.

In fact the first operating systems for IBM computers were written by IBM customers who did not wish to have their very expensive machines ($2M in the mid-1950s) sitting idle while operators set up jobs manually, and so they wanted a mechanism for maintaining a queue of jobs.

The operating systems described below ran only on a few processor models and were suitable only for scientific and engineering calculations. Users with other IBM computers or other applications had to manage without operating systems. But one of IBM's smaller computers, the IBM 650
IBM 650
The IBM 650 was one of IBM’s early computers, and the world’s first mass-produced computer. It was announced in 1953, and over 2000 systems were produced between the first shipment in 1954 and its final manufacture in 1962...

, introduced a feature which later became part of OS/360
OS/360 and successors
OS/360, officially known as IBM System/360 Operating System, was a 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 packages...

: if processing was interrupted by a "random processing error" (hardware glitch), the machine could automatically resume from the last checkpoint instead of requiring the operators to restart the job manually from the beginning.

From General Motors' GM-NAA I/O to IBSYS

General Motors
General Motors
General Motors Company , commonly known as GM, formerly incorporated as General Motors Corporation, is an American multinational automotive corporation headquartered in Detroit, Michigan and the world's second-largest automaker in 2010...

' Research division produced GM-NAA I/O
GM-NAA I/O
The GM-NAA I/O input/output system of General Motors and North American Aviation was the first operating system for the IBM 704 computer.It was created in 1956 by Robert L. Patrick of General Motors Research and Owen Mock of North American Aviation...

 for its IBM 701
IBM 701
The IBM 701, known as the Defense Calculator while in development, was announced to the public on April 29, 1952, and was IBM’s first commercial scientific computer...

 in 1956 (from a prototype, GM Operating System, developed in 1955), and updated it for the 701's successor. In 1960 the IBM user association SHARE
SHARE (computing)
SHARE Inc. is a volunteer-run user group for IBM mainframe computers that was founded in 1955 by Los Angeles-area IBM 701 users. It evolved into a forum for exchanging technical information about programming languages, operating systems, database systems, and user experiences for enterprise users...

 took it over and produced an updated version, SHARE Operating System
SHARE Operating System
The SHARE Operating System, also known as SOS, was created in 1959 as an improvement on the General Motors GM-NAA I/O operating system, the first operating system, by the SHARE user group...

.

Finally IBM took over the project and supplied an enhanced version called IBSYS
IBSYS
IBSYS was the tape based operating system that IBM supplied with its IBM 7090 and IBM 7094 computers. A similar operating system , also called IBSYS, was provided with IBM 7040 and IBM 7044 computers...

 with the IBM 7090
IBM 7090
The IBM 7090 was a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computers and was designed for "large-scale scientific and technological applications". The 7090 was the third member of the IBM 700/7000 series scientific computers. The first 7090 installation...

 and IBM 7094 computers. IBSYS required 8 tape drive
Tape drive
A tape drive is a data storage device that reads and performs digital recording, writes data on a magnetic tape. Magnetic tape data storage is typically used for offline, archival data storage. Tape media generally has a favorable unit cost and long archival stability.A tape drive provides...

s (fewer if the system had one or more disk drives). Its main components were: a card
Punched card
A punched card, punch card, IBM card, or Hollerith card is a piece of stiff paper that contains digital information represented by the presence or absence of holes in predefined positions...

-based Job Control language, which was the main user interface; compilers for FORTRAN
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

 and COBOL
COBOL
COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....

; an assembler
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

; and various utilities including a sort
Sorting algorithm
In computer science, a sorting algorithm is an algorithm that puts elements of a list in a certain order. The most-used orders are numerical order and lexicographical order...

 program.

In 1958 the University of Michigan Executive System adapted GM-NAA I/O to produce UMES
University of Michigan Executive System
The University of Michigan Executive System, or UMES, a batch operating system developed at the University of Michigan in 1958, was widely used at many universities...

, which was better-suited to the large number of small jobs created by students. UMES was used until 1967, when it was replaced by the MTS
Michigan Terminal System
The Michigan Terminal System is one of the first time-sharing computer operating systems. Initially developed in 1967 at the University of Michigan for use on IBM S/360-67, S/370 and compatible mainframe computers, it was developed and used by a consortium of eight universities in the United...

 timesharing system.

BESYS

Bell Labs produced BESYS
BESYS
BESYS was an early computing environment originally implemented as a batch processing operating system in 1957 at Bell Labs for the IBM 704 computer. The initial version of the system BESYS2 was created by George Mealy and Gwen Hansen with Wanda Lee Mammel and utilized IBM's FORTRAN and North...

 (sometimes referred to as BELLMON) and used it until the mid-1960s. Bell also made it available to others without charge or formal technical support.

FORTRAN Monitor System

Before IBSYS, IBM produced for its IBM 709
IBM 709
The IBM 709 was an early computer system introduced by IBM in August, 1958. It was an improved version of the IBM 704 and the second member of the IBM 700/7000 series of scientific computers....

, 7090
IBM 7090
The IBM 7090 was a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computers and was designed for "large-scale scientific and technological applications". The 7090 was the third member of the IBM 700/7000 series scientific computers. The first 7090 installation...

 and 7094 computers a tape-based operating system whose sole purpose was to compile
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 FORTRAN
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

 programs - in fact FMS and the FORTRAN compiler were on the same tape.

Early time-sharing and virtual machine systems

For an explanation of time-sharing, virtual memory or virtual machines, see the Technical notes near the end of this article.


MIT's Fernando Corbató produced the first experimental time-sharing
Time-sharing
Time-sharing is the sharing of a computing resource among many users by means of multiprogramming and multi-tasking. Its introduction in the 1960s, and emergence as the prominent model of computing in the 1970s, represents a major technological shift in the history of computing.By allowing a large...

 systems, such as CTSS, from 1957 to the early 1960s, using slightly modified IBM 704
IBM 704
The IBM 704, the first mass-produced computer with floating point arithmetic hardware, was introduced by IBM in 1954. The 704 was significantly improved over the IBM 701 in terms of architecture as well as implementations which were not compatible with its predecessor.Changes from the 701 included...

 and IBM 7090
IBM 7090
The IBM 7090 was a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computers and was designed for "large-scale scientific and technological applications". The 7090 was the third member of the IBM 700/7000 series scientific computers. The first 7090 installation...

 mainframes; these systems were based on a proposal by John McCarthy
John McCarthy (computer scientist)
John McCarthy was an American computer scientist and cognitive scientist. He coined the term "artificial intelligence" , invented the Lisp programming language and was highly influential in the early development of AI.McCarthy also influenced other areas of computing such as time sharing systems...

. In the 1960s IBM's own laboratories created experimental time-sharing systems, using standard mainframes with hardware and microcode
Microcode
Microcode is a layer of hardware-level instructions and/or data structures involved in the implementation of higher level machine code instructions in many computers and other processors; it resides in special high-speed memory and translates machine instructions into sequences of detailed...

 modifications to support virtual memory
Virtual memory
In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...

: IBM M44/44X
IBM M44/44X
The IBM M44/44X was an experimental computer system from the mid 1960s, designed and operated at IBM's Thomas J. Watson Research Center at Yorktown Heights, New York. It was based on an IBM 7044 , and simulated multiple 7044 virtual machines , using both hardware and software. Key team members were...

 in the early 1960s; CP-40
IBM CP-40
CP-40 was a research precursor to CP-67, which in turn was part of IBM's then-revolutionary CP[-67]/CMS – a virtual machine/virtual memory time-sharing operating system for the IBM System/360-67, and the parent of IBM's VM family. CP-40 ran multiple instances of client operating systems...

 from 1964 to 1967; CP-67
CP-67
CP-67 was the control program portion of CP/CMS, a virtual machine operating system developed for the IBM System/360-67 by IBM's Cambridge Scientific Center. It was a reimplementation of their earlier research system CP-40, which ran on a one-off customized S/360-40...

 from 1967 to 1972. The company even released CP-67 without warranty or technical support to several large customers from 1968 to 1972. CP-40 and CP-67 used modified System/360
System/360
The IBM System/360 was a mainframe computer system family first announced by IBM on April 7, 1964, and sold between 1964 and 1978. It was the first family of computers designed to cover the complete range of applications, from small to large, both commercial and scientific...

 CPUs, but the M44/44X was based on the IBM 7044, an earlier generation of CPU which was very different internally. – a survey of research papers

These experimental systems were too late to be incorporated into the System/360
System/360
The IBM System/360 was a mainframe computer system family first announced by IBM on April 7, 1964, and sold between 1964 and 1978. It was the first family of computers designed to cover the complete range of applications, from small to large, both commercial and scientific...

 series which IBM announced in 1964, but encouraged the company to add virtual memory and virtual machine capabilities to its System/370
System/370
The IBM System/370 was a model range of IBM mainframes announced on June 30, 1970 as the successors to the System/360 family. The series maintained backward compatibility with the S/360, allowing an easy migration path for customers; this, plus improved performance, were the dominant themes of the...

 mainframes and their operating systems in 1972:
  • The M44/44X showed that a partial approach to virtual machines was not good enough, and that thrashing could severely reduce the speed of virtual memory systems. Thrashing is a condition in which the system runs very slowly because it spends a lot of its time shuffling virtual memory pages between physical memory and disk files.
  • IBM learned from CP-40 and CP-67: how to make the thrashing problem negligible; that its other virtual memory and virtual machine technologies were sufficiently fast and reliable to be used in the high-volume commercial systems which were its core business. In particular IBM's David Sayre convinced the company that automated virtual memory management could consistently perform at least as well as the best programmer-designed overlay
    Overlay (programming)
    In a general computing sense, overlaying means "replacement of a block of stored instructions or data with another" Overlaying is a programming method that allows programs to be larger than the computer's main memory...

     schemes.


In 1968 a consulting firm called Computer Software Systems used the released version of CP-67 to set up a commercial time-sharing service. The company's technical team included 2 recruits from MIT (see CTSS above), Dick Orenstein and Harold Feinleib. As it grew, the company renamed itself National CSS
National CSS
National CSS, Inc. was a time-sharing firm in the 1960-80s, until its acquisition by Dun & Bradstreet in 1979. NCSS was originally headquartered in Norwalk, Connecticut, but relocated to Wilton in 1978. Sales offices, data centers, and development facilities were located at various sites...

 and modified the software to increase the number of paying users it could support until the system was sufficiently different to warrant a new name, VP/CSS
VP/CSS
VP/CSS was a time-sharing operating system developed by National CSS. It began life in 1968 as a copy of IBM's CP/CMS, which at the time was distributed to IBM customers at no charge, in source code form, without support, as part of the IBM Type-III Library...

. VP/CSS was the delivery mechanism for National CSS' services until the early 1980s, when it switched to IBM's VM/370 (see below).

Universities produced three other S/360 time-sharing operating systems in the late 1960s:
  • The Michigan Terminal System
    Michigan Terminal System
    The Michigan Terminal System is one of the first time-sharing computer operating systems. Initially developed in 1967 at the University of Michigan for use on IBM S/360-67, S/370 and compatible mainframe computers, it was developed and used by a consortium of eight universities in the United...

    (MTS) was developed in 1967 by a consortium of universities led by the University of Michigan
    University of Michigan
    The University of Michigan is a public research university located in Ann Arbor, Michigan in the United States. It is the state's oldest university and the flagship campus of the University of Michigan...

    . All versions ran on IBM mainframes which had virtual memory capability, starting with the S/360-67
    IBM System/360 Model 67
    The IBM System/360 Model 67 was an important IBM mainframe model in the late 1960s. Unlike the rest of the S/360 series, it included features to facilitate time-sharing applications, notably a DAT box to support virtual memory and 32-bit addressing...

    . MTS remained in use until 1999.
  • McGill University
    McGill University
    Mohammed Fathy is a public research university located in Montreal, Quebec, Canada. The university bears the name of James McGill, a prominent Montreal merchant from Glasgow, Scotland, whose bequest formed the beginning of the university...

     in Montreal
    Montreal
    Montreal is a city in Canada. It is the largest city in the province of Quebec, the second-largest city in Canada and the seventh largest in North America...

     started developing MUSIC
    MUSIC/SP
    MUSIC/SP was developed at McGill University in the 1970s from an early IBM time-sharing system called RAX...

    (McGill University System for Interactive Computing) in 1969. MUSIC was enhanced several times and eventually supported text searches, web publishing and email as well as software development. MUSIC became an IBM Systems Product (MUSIC/SP or Multi-User System for Interactive Computing / System Product) in 1985. The last official version was released in 1999.
  • ORVYL and WYLBUR were developed by Stanford University
    Stanford University
    The Leland Stanford Junior University, commonly referred to as Stanford University or Stanford, is a private research university on an campus located near Palo Alto, California. It is situated in the northwestern Santa Clara Valley on the San Francisco Peninsula, approximately northwest of San...

     in 1967-68 for the IBM S/360-67. They provided some of the first time-sharing capabilities on IBM S/360 computers.

System/360 operating systems

Up to the early 1960s IBM's low-end and high-end systems were incompatible - programs could not easily be transferred from one to another, and the systems often used completely different peripheral
Peripheral
A peripheral is a device attached to a host computer, but not part of it, and is more or less dependent on the host. It expands the host's capabilities, but does not form part of the core computer architecture....

s (e.g. disk drives). IBM concluded that these factors were increasing its design and production costs for both hardware and software to a level that was unsustainable, and were reducing sales by deterring customers from upgrading. So in 1964 the company announced System/360
System/360
The IBM System/360 was a mainframe computer system family first announced by IBM on April 7, 1964, and sold between 1964 and 1978. It was the first family of computers designed to cover the complete range of applications, from small to large, both commercial and scientific...

, a new range of computers which all used the same peripherals and most of which could run the same programs.

IBM originally intended that System/360 should have only one batch-oriented
Batch processing
Batch processing is execution of a series of programs on a computer without manual intervention.Batch jobs are set up so they can be run to completion without manual intervention, so all input data is preselected through scripts or command-line parameters...

 operating system, OS/360. There are at least two accounts of why IBM later decided it should also produce a simpler batch-oriented operating system, DOS/360
DOS/360
Disk Operating System/360, also DOS/360, or simply DOS, was an operating system for IBM mainframes. It was announced by IBM on the last day of 1964, and it was first delivered in June 1966....

: because it found that 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, and introduced DOS/360 as one of a series of stop-gaps to prevent System/360 hardware sales from collapsing - the others were BOS/360 (Basic Operating System, for the smallest machines) and TOS/360 (Tape Operating System, for machines with only tape drives).

System/360's operating systems were more complex than previous IBM operating systems for several reasons, including:
  • They had to support multiprogramming
    Multiprogramming
    Computer multiprogramming is the allocation of a computer system and its resources to more than one concurrent application, job or user ....

    , otherwise the faster CPUs in the range would have spent most of their time waiting for I/O
    I/O
    I/O may refer to:* Input/output, a system of communication for information processing systems* Input-output model, an economic model of flow prediction between sectors...

     operations (e.g. disk reads) to complete. This meant that the operating systems had to be the real masters of the systems, to provide whatever services the applications validly requested, and to handle crashes or misbehavior in one application without stopping others that were running at the same time.
  • They had to support a much wider range of machine sizes. Memory ranged from 16KB to 1MB and processor speeds from a few thousand instructions per second to 500,000.

  • System/360's operating systems had to support a wide range of application requirements, for example: some applications only needed to read through sequential files from start to finish; others needed fast, direct access to specific records in very large files; and a few applications spent nearly all their time doing calculations, with very little reading / writing of files.


This was one of the largest software projects anyone had attempted, and it soon ran into trouble, with huge time and cost over-runs and large numbers of bugs
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...

. So the company had to release a series of short-lived stop-gaps because:
  • To develop and test the planned operating systems it needed to use System/360 hardware. So it first developed BPS (Basic Programming Support), which it used to develop the tools it needed for developing DOS/360 and OS/360 and the first versions of tools its would supply with these operating systems - compiler
    Compiler
    A compiler is a computer program that transforms source code written in a programming language into another computer language...

    s (FORTRAN
    Fortran
    Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

     and COBOL
    COBOL
    COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....

    ), utilities
    Utility software
    Utility software is system software designed to help analyze, configure, optimize or maintain a computer. A single piece of utility software is usually called a utility or tool....

     including Sort
    Sorting algorithm
    In computer science, a sorting algorithm is an algorithm that puts elements of a list in a certain order. The most-used orders are numerical order and lexicographical order...

    , and above all the Assembler
    Assembly language
    An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

     it needed to build all the other software.
  • Competitors took advantage of the delays to announce systems aimed at what they thought were the most vulnerable parts of IBM's market.


IBM released 4 stop-gap operating systems to prevent sales of System/360 from collapsing:
  • BOS/360 (Basic Operating System), which loaded from a card reader
    Card reader
    A card reader is a data input device that reads data from a card-shaped storage medium. Historically, paper or cardboard punched cards were used throughout the first several decades of the computer industry to store information and programs for computer system, and were read by punched card readers...

     and supported tape drives and a few disks. This system was supplied to beta test customers and may have been an early version of DOS/360.
  • TOS/360, which was designed to provide an upgrade path for customers who had IBM 1401
    IBM 1401
    The IBM 1401 was a variable wordlength decimal computer that was announced by IBM on October 5, 1959. The first member of the highly successful IBM 1400 series, it was aimed at replacing electromechanical unit record equipment for processing data stored on punched cards...

     computers with tape drives and no disks.
  • DOS/360
    DOS/360
    Disk Operating System/360, also DOS/360, or simply DOS, was an operating system for IBM mainframes. It was announced by IBM on the last day of 1964, and it was first delivered in June 1966....

    , which was built by the developers of BOS/360 and TOS/360 (IBM's small business computers division) and went on to become a mainstream operating system whose descendant z/VSE is still widely used.
  • PCP (Primary Control Program), which was a very early option of OS/360 that didn't support multiprogramming.


When IBM announced the S/360-67
IBM System/360 Model 67
The IBM System/360 Model 67 was an important IBM mainframe model in the late 1960s. Unlike the rest of the S/360 series, it included features to facilitate time-sharing applications, notably a DAT box to support virtual memory and 32-bit addressing...

 it also announced a timesharing operating system, TSS/360
TSS/360
The IBM Time Sharing System TSS/360 was an early time-sharing operating system designed exclusively for a special model of the System/360 line of mainframes, the Model 67. Made available on a trial basis to a limited set of customers in 1967, it was never officially released as a supported product...

, that would use the new virtual memory capabilities of the 360/67. TSS/360 was so late and unreliable that IBM canceled it. By this time the alternative operating system CP-67
CP-67
CP-67 was the control program portion of CP/CMS, a virtual machine operating system developed for the IBM System/360-67 by IBM's Cambridge Scientific Center. It was a reimplementation of their earlier research system CP-40, which ran on a one-off customized S/360-40...

, developed by IBM's Cambridge Scientific Center
Cambridge Scientific Center
The IBM Cambridge Scientific Center, established in February 1964 by Norm Rasmussen, was situated at 545 Technology Square , Cambridge, Massachusetts in the same building as MIT's Project MAC...

, was running well enough for IBM to offer it "without warranty" as a timesharing facility for a few large customers. CP-67 would go on to become VM/370 and eventually z/VM
Z/VM
z/VM is the current version in IBM's VM family of virtual machine operating systems. z/VM was first released in October 2000 and remains in active use and development . It is directly based on technology and concepts dating back to the 1960s, with IBM's CP/CMS on the IBM System/360-67...

.

The traumas of producing the System/360 operating systems gave a boost to the emerging discipline of software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

, the attempt to apply scientific principles to the development of software and the management of software projects
Project management
Project management is the discipline of planning, organizing, securing, and managing resources to achieve specific goals. A project is a temporary endeavor with a defined beginning and end , undertaken to meet unique goals and objectives, typically to bring about beneficial change or added value...

. Frederick P. Brooks, who was a senior project manager for the whole System/360 project and then was given specific responsibility for OS/360 (which was already long overdue), wrote an acclaimed book, The Mythical Man-Month
The Mythical Man-Month
The Mythical Man-Month: Essays on Software Engineering is a book on software engineering and project management by Fred Brooks, whose central theme is that "adding manpower to a late software project makes it later"...

, based on the problems encountered and lessons learned during the project, two of which were:
  • Throwing additional resources (especially staff) at a struggling project quickly becomes unproductive or even counter-productive because of communication difficulties. This is the "Mythical Man-Month" syndrome which gave the book its title.
  • The successor to a successful system often runs into difficulties because it gets overloaded with all the features people wished had been in the earlier system. Brooks called this the "second-system effect
    Second-system effect
    The second-system effect refers to the tendency of small, elegant, and successful systems to have elephantine, feature-laden monstrosities as their successors. The term was first used by Fred Brooks in his classic The Mythical Man-Month...

    ", and cited OS/360 as a very comprehensive example.

DOS/360

DOS/360
DOS/360
Disk Operating System/360, also DOS/360, or simply DOS, was an operating system for IBM mainframes. It was announced by IBM on the last day of 1964, and it was first delivered in June 1966....

 became the usual operating system for processors less than 256KB of memory. It had a good set of utility programs, an Assembler
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

, and compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

s for FORTRAN
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

, COBOL
COBOL
COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....

 and eventually PL/I
PL/I
PL/I is a procedural, imperative computer programming language designed for scientific, engineering, business and systems programming applications...

. And it supported a useful range of file organizations with access method
Access method
An access method is a function of a mainframe operating system that enables access to data on disk, tape or other external devices. They were introduced in 1963 in IBM OS/360 operating system...

s to help in using them:
  • Sequential data sets were normally read one record at a time from beginning to end.
  • In indexed (ISAM
    ISAM
    ISAM stands for Indexed Sequential Access Method, a method for indexing data for fast retrieval. ISAM was originally developed by IBM for mainframe computers...

    ) 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
    Basic direct access method
    In IBM mainframe operating systems, basic direct access method is an access method to read and write data sets directly. In BDAM, the programmer has complete control of the organization of the file...

    ) files, the application program had to specify the physical location on the disk of the data it wanted to access. BDAM programming was not easy and most customers 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 system
    Database management system
    A database management system is a software package with computer programs that control the creation, maintenance, and use of a database. It allows organizations to conveniently develop databases for various applications by database administrators and other specialists. A database is an integrated...

    s such as ADABAS
    Adabas
    ADABAS is Software AG’s primary database management system.- History :First released in 1970, ADABAS is considered by some to have been one of the earliest commercially available database products...

    , IDMS
    IDMS
    IDMS is primarily a network database management system for mainframes. It was first developed at B.F. Goodrich and later marketed by Cullinane Database Systems...

     and IBM's DL/I
    Data Language Interface
    Data Language Interface is the language system used to access IBM’s IMS databases, and its data communication system....

    .

Sequential and ISAM files could store either fixed-length or variable-length records, and all types could occupy more than one disk volume.

DOS/360 also offered BTAM, a data communications facility which was primitive and hard to use by today's standards. But BTAM 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.

But DOS/360 had significant limitations compared with OS/360, which was used to control most larger System/360 machines:
  • The first version could run only one program at a time. A later enhancement allowed 3 at the same time, in one of 3 "partitions" whose size was set by each customer when DOS/360 was installed.
  • The JCL
    Job Control Language
    Job Control Language is a scripting language used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem....

     it used for submitting jobs was designed to be easy for the low-end machines to process, and as a result programmers did not find it easy to read or write.
  • There was no spooling
    Spooling
    In computer science, spool refers to the process of placing data in a temporary working area for another program to process. The most common use is in writing files on a magnetic tape or disk and entering them in the work queue for another process. Spooling is useful because devices access data at...

     sub-system to improve the efficiency of punched card
    Punched card
    A punched card, punch card, IBM card, or Hollerith card is a piece of stiff paper that contains digital information represented by the presence or absence of holes in predefined positions...

     and printer use. In the late 1960s an independent software company started selling a spooler called GRASP.
  • DOS/360 had no relocating loader, so users had to link edit a separate executable version of each program for each partition in which the program was likely to be run.
  • Executable programs were stored in the Core Image Library, which did not reclaim space when programs were deleted or replaced by newer versions. When the Core Image Library became full, it had to be compressed by one of the utility programs, and this could halt development work for as much as half a day.
  • Its application programming interface
    Application programming interface
    An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

     was different from that of OS/360. Programs written in high level languages such as COBOL
    COBOL
    COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....

     needed small modifications before they could be used with OS/360 and Assembler
    Assembly language
    An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

     programs needed larger changes.


IBM expected that DOS/360 users would soon upgrade to OS/360. But despite its limitations DOS/360 became the world's most widely-used operating system because System/360 hardware sold very well, DOS/360 ran well on System/360 processors which medium-sized organizations could afford, and it was better than the "operating systems" these customers had before. As a result, its descendant z/VSE is still widely-used today, as of 2005.

OS/360

OS/360 included multiple levels of support, a single API and much shared code. PCP was a stop-gap version which could run only one program at a time, but MFT ("Multiprogramming
Multiprogramming
Computer multiprogramming is the allocation of a computer system and its resources to more than one concurrent application, job or user ....

 with a Fixed number of Tasks") and MVT ("Multiprogramming
Multiprogramming
Computer multiprogramming is the allocation of a computer system and its resources to more than one concurrent application, job or user ....

 with a Variable number of Tasks") were used until at least the late 1970s, a good five years after their successors had been launched. It is unclear whether the divisions among PCP, MFT and 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.

PCP, MFT and MVT had different approaches to managing memory (see below), but provided very similar facilities:
  • The same application programming interface
    Application programming interface
    An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

     (API), so application programs could be transferred among PCP, MFT and MVT without even needing re-compilation
    Compiler
    A compiler is a computer program that transforms source code written in a programming language into another computer language...

    .
  • The same JCL
    Job Control Language
    Job Control Language is a scripting language used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem....

    , which was more flexible and easier to use than that of DOS/360.
  • The same facilities (access method
    Access method
    An access method is a function of a mainframe operating system that enables access to data on disk, tape or other external devices. They were introduced in 1963 in IBM OS/360 operating system...

    s) as DOS/360 for reading and writing files (sequential, indexed and direct) and for data communications (BTAM).
  • An additional file structure, partitioned, and access method (BPAM), which 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 PCP, MFT and MVT allowed an indefinite number of partitioned files and each project generally had at least one.
  • A file naming system which allowed files to be managed as hierarchies, e.g. PROJECT.USER.FILENAME.
  • A spooling
    Spooling
    In computer science, spool refers to the process of placing data in a temporary working area for another program to process. The most common use is in writing files on a magnetic tape or disk and entering them in the work queue for another process. Spooling is useful because devices access data at...

     facility (which DOS/360 lacked).
  • Applications could create sub-tasks, which allowed multiprogramming
    Multiprogramming
    Computer multiprogramming is the allocation of a computer system and its resources to more than one concurrent application, job or user ....

     within the one job.


Experience indicated that it was not advisable to install MFT on systems with less than 256KB of memory, which was a lot in the 1960s.

MFT

When installing MFT, customers would specify up to five "partitions", areas of memory with fixed boundaries, in which application programs could be run simultaneously. MFT Version II (MFT-II)raised the limit to 52.

MVT

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
Fragmentation (computer)
In computer storage, fragmentation is a phenomenon in which storage space is used inefficiently, reducing storage capacity and in most cases reducing the performance. The term is also used to denote the wasted space itself....

 - 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.

In 1971 the Time Sharing Option
Time Sharing Option
In computing, Time Sharing Option is an interactive time-sharing environment for IBM mainframe operating systems, including OS/360 MVT, OS/VS2 , MVS, OS/390, and z/OS.- Overview :TSO fulfills a similar purpose to Unix login sessions...

 (TSO) for use with MVT 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; debugger
Debugger
A debugger or debugging tool is a computer program that is used to test and debug other programs . The code to be examined might alternatively be running on an instruction set simulator , a technique that allows great power in its ability to halt when specific conditions are encountered but which...

s for some of the programming languages used on System/360. TSO communicated with terminals by using TCAM (Telecommunications Access Method
Telecommunications Access Method
Telecommunications Access Method is an access method, in IBM's OS/360 and successors computer operating systems on IBM System/360 and later, that provides access to terminals units within a teleprocessing network....

), which eventually replaced the earlier Queued Telecommunications Access Method (QTAM). 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
VTAM
Virtual Telecommunications Access Method is IBM's software package that provides communications via telecommunication devices for mainframe environments. It is the implementation of Systems Network Architecture for mainframes...

 from the late 1970s onwards.

TP monitors

System/360's hardware and operating systems were designed for processing batch
Batch processing
Batch processing is execution of a series of programs on a computer without manual intervention.Batch jobs are set up so they can be run to completion without manual intervention, so all input data is preselected through scripts or command-line parameters...

 jobs which in extreme cases might run for hours. As a result they were unsuitable for transaction processing
Transaction processing
In computer science, transaction processing is information processing that is divided into individual, indivisible operations, called transactions. Each transaction must succeed or fail as a complete unit; it cannot remain in an intermediate state...

, in which there are thousands of units of work per day and each takes between 30 seconds and a very few minutes. In 1968 IBM released IMS to handle transaction processing, and in 1969 it released CICS
CICS
Customer Information Control System is a transaction server that runs primarily on IBM mainframe systems under z/OS and z/VSE.CICS is a transaction manager designed for rapid, high-volume online processing. This processing is mostly interactive , but background transactions are possible...

, a simpler transaction server
Transaction server
A transaction server is a software component that is used in implementing transactions.A transaction involves multiple steps which must be completed atomically, as though it is a single operation which can not be interrupted, even though it may require multiple steps...

 which a group of IBM's staff had developed for a customer. IMS was only available for OS/360 and its successors, but CICS was also available for DOS/360 and its successors. For many years this type of product was known as a "TP (teleprocessing) monitor". Strictly speaking TP monitors were not operating system components but application programs which managed other application programs. In the 1970s and 1980s several third-party TP monitors competed with CICS (notably Taskmaster, Shadow and Intercomm), but IBM gradually improved CICS to the point where most customers abandoned the alternatives.

Special systems for airlines

In the 1950s airlines were expanding rapidly but this growth was held back by the difficulty of handling thousands of bookings manually (using card files). In 1957 IBM signed a development contract with American Airlines
American Airlines
American Airlines, Inc. is the world's fourth-largest airline in passenger miles transported and operating revenues. American Airlines is a subsidiary of the AMR Corporation and is headquartered in Fort Worth, Texas adjacent to its largest hub at Dallas/Fort Worth International Airport...

 for the development of a computerized reservations system, which became known as SABRE
Sabre (computer system)
Sabre Global Distribution System , owned by Sabre Holdings, is used by more than 55,000 travel agencies around the world with more than 400 airlines, 88,000 hotels, 24 car rental brands, and 13 cruise lines...

. The first experimental system went live in 1960 and the system took over all booking functions in 1964 - in both cases using IBM 7090
IBM 7090
The IBM 7090 was a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computers and was designed for "large-scale scientific and technological applications". The 7090 was the third member of the IBM 700/7000 series scientific computers. The first 7090 installation...

 mainframes. In the early 1960s IBM undertook similar projects for other airlines, and soon decided to produce a single standard booking system, PARS, to run on System/360
System/360
The IBM System/360 was a mainframe computer system family first announced by IBM on April 7, 1964, and sold between 1964 and 1978. It was the first family of computers designed to cover the complete range of applications, from small to large, both commercial and scientific...

 computers.

In SABRE and early versions of PARS there was no separation between the application and operating system components of the software, but in 1968 IBM divided it into PARS (application) and ACP (operating system). Later versions of ACP were named ACP / TPF and then TPF
Transaction Processing Facility
TPF is an IBM real-time operating system for mainframes descended from the IBM System/360 family, including zSeries and System z9. The name is an initialism for Transaction Processing Facility....

 (Transaction Processing Facility) as non-airline businesses adopted this operating system for handling large volumes of online transactions. The latest version is z/TPF.

IBM developed ACP and its successors because: in the mid-1960s IBM's standard operating systems (DOS/360
DOS/360
Disk Operating System/360, also DOS/360, or simply DOS, was an operating system for IBM mainframes. It was announced by IBM on the last day of 1964, and it was first delivered in June 1966....

 and OS/360) were batch
Batch processing
Batch processing is execution of a series of programs on a computer without manual intervention.Batch jobs are set up so they can be run to completion without manual intervention, so all input data is preselected through scripts or command-line parameters...

-oriented and could not handle large numbers of short transactions quickly enough; even its transaction monitor
Transaction Processing System
A transaction processing system is a type of information system. TPSs collect, store, modify, and retrieve the transactions of an organization. A transaction is an event that generates or modifies data that is eventually stored in an information system. To be considered a transaction processing...

s IMS
Information Management System
IBM Information Management System is a joint hierarchical database and information management system with extensive transaction processing capabilities.- History :...

 and CICS
CICS
Customer Information Control System is a transaction server that runs primarily on IBM mainframe systems under z/OS and z/VSE.CICS is a transaction manager designed for rapid, high-volume online processing. This processing is mostly interactive , but background transactions are possible...

, which run under the control of standard general-purpose operating systems, are not fast enough for handling reservations on hundreds of flights from thousands of travel agents.

The last "public domain" version of ACP, hence its last "free" version, was ACP 9.2, which was distributed on a single mini-reel with an accompanying manual set (about two dozen manuals, which occupied perhaps 48 lineal inches of shelf space) and which could be restored to IBM 3340 disk drives and which would, thereby, provide a fully functional ACP system.

ACP 9.2 was intended, primarily, for bank card (MasterCard®, et. al.) and other "financial" applications, but it could also be utilized for airlines reservation systems, too, as by this time ACP had become a more general-purpose OS.

Indeed, ACP had by then incorporated a "hypervisor" module (CHYR) which supported a virtual OS ... usually VS1
OS/VS1
Operating System/Virtual Storage 1, or OS/VS1,was an IBM mainframe computer operating system designed to be run on IBM System/370 hardware....

, but possibly also VS2
OS/VS2
Operating System/Virtual Storage 2 is the successor operating system to OS/360 MVT in the OS/360 family.*SVS refers to OS/VS2 Release 1*MVS refers to OS/VS2 Release 2 and later...

... as a "guest", with which program development or file maintenance could be accomplished concurrently with the on-line functions.

In some instances, production work was run under VS2 under the hypervisor, including, possibly, IMS DB.

System/360 Model 20

This machine was labelled as part of the System/360 range because it could be connected to the same peripherals, but it was not program-compatible with other members of the System/360 range. Three operating systems were developed by IBM's labs in Germany, for different 360/20 configurations; with disks (minimum memory required: 12KB); no disk but with tapes (minimum memory required: 8KB); and punched-card-based (minimum memory required: 4KB).
These had no direct successors since IBM introduced the System/3
System/3
The IBM System/3 was a low-end business computer aimed at new customers and organizations that still used IBM 1400 series computers or unit record equipment...

 range of small business computers in 1969 and System/3 had a different internal design from the 360/20 and different peripherals from IBM's mainframes.

System/360 Model 44

This was another processor which used the System/360 peripherals but had a different internal design. The 360/44 was designed for scientific computation using floating point
Floating point
In computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16...

 numbers, such as geological or meteorological analyses. Because of the internal differences and the specialized type of work for which it was designed, the 360/44 had its own operating system, PS/44. The 360/44 and PS/44 had no direct successors.

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
Virtual memory
In computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...

 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.

Most of the new operating systems were distinguished from their predecessors by the presence of "/VS" in their names. "VS" stands for "Virtual Storage" - IBM avoided the term "memory", allegedly because it might be interpreted to imply that their computers could forget things.

All of today's IBM mainframe operating systems except z/TPF are descendants of those included in the "System/370 Advanced Functions" announcement - z/TPF is a descendant of ACP
Airlines Control Program
IBM Airline Control Program, or ACP, was an operating system developed by IBM beginning about 1965. In contrast to previous airline transaction processing systems, the most notable aspect of ACP is that it was designed to run on most models of the IBM System/360 mainframe computer family...

, the system which IBM initially developed to support high-volume airline reservations applications.

DOS/VS

DOS/VS was the successor to DOS/360
DOS/360
Disk Operating System/360, also DOS/360, or simply DOS, was an operating system for IBM mainframes. It was announced by IBM on the last day of 1964, and it was first delivered in June 1966....

. In addition to virtual memory DOS/VS provided other enhancements:
  • 5 memory partitions instead of 3. Later releases increased this to 7.
  • A relocating loader, so that it was no longer necessary to link-edit a separate copy of each program for each partition in which it was to run.
  • An improved spooling
    Spooling
    In computer science, spool refers to the process of placing data in a temporary working area for another program to process. The most common use is in writing files on a magnetic tape or disk and entering them in the work queue for another process. Spooling is useful because devices access data at...

     component, POWER/VS.


DOS/VS was followed by significant upgrades: DOS/VSE and VSE/SP (1980s), VSE/ESA (1991), and z/VSE (2005).

OS/VS1

OS/VS1
OS/VS1
Operating System/Virtual Storage 1, or OS/VS1,was an IBM mainframe computer operating system designed to be run on IBM System/370 hardware....

 was the successor to MFT, and offered similar facilities, with the addition of virtual memory. 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.

OS/VS2 and MVS

OS/VS2 Release 1 (SVS
OS/VS2 (SVS)
Single Virtual Storage refers to Release 1 of Operating System/Virtual Storage 2 ; it is the successor system to the MVTBut not 65MP option of Operating System/360...

) was a replacement for MVT with virtual memory; while there were many changes it retained the overall structure. But in 1974 IBM released what it described as OS/VS2 release 2 but which was a major rewrite that was upwards-compatible with the earlier OS/VS2 SVS. The new system was a major rewrite and its 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. As a result the new system rapidly became known as "MVS
MVS
Multiple Virtual Storage, more commonly called MVS, was the most commonly used operating system on the System/370 and System/390 IBM mainframe computers...

" (Multiple Virtual Storages), the original OS/VS2 became known as "SVS" (Single Virtual Storage). IBM itself accepted this terminology and labelled MVS's successors "MVS/...".

The other distinctive features of MVS were: its main catalog had to be a VSAM catalog; it supported "tightly-coupled multiprocessing"
Symmetric multiprocessing
In computing, symmetric multiprocessing involves a multiprocessor computer hardware architecture where two or more identical processors are connected to a single shared main memory and are controlled by a single OS instance. Most common multiprocessor systems today use an SMP architecture...

 (2 or more CPUs share the same memory and copy of the operating system); it included a System Resources Manager (renamed Workload Manager in later versions) which allowed users to load additional work on to the system without reducing the performance of high-priority jobs.

IBM has released several MVS upgrades: MVS/XA (1981), MVS/ESA (1985), OS/390 (1996) and currently z/OS (2001).

VM/370

VM/370
VM (operating system)
VM refers to a family of IBM virtual machine operating systems used on IBM mainframes System/370, System/390, zSeries, System z and compatible systems, including the Hercules emulator for personal computers. The first version, released in 1972, was VM/370, or officially Virtual Machine Facility/370...

 combined a virtual machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...

 facility with a single-user system called Conversational Monitor System
Conversational Monitor System
The Conversational Monitor System is a relatively simple interactive computing single-user operating system.* CMS is part of IBM's VM family, which runs on IBM mainframe computers...

 (CMS); this combination provided time-sharing
Time-sharing
Time-sharing is the sharing of a computing resource among many users by means of multiprogramming and multi-tasking. Its introduction in the 1960s, and emergence as the prominent model of computing in the 1970s, represents a major technological shift in the history of computing.By allowing a large...

 by allowing each user to run a copy of CMS on his / her own virtual machine. This combination was a direct descendant of CP/CMS
CP/CMS
CP/CMS was a time-sharing operating system of the late 60s and early 70s, known for its excellent performance and advanced features...

. The virtual machine facility was often used for testing new software while normal production work continued on another virtual machine, and the CMS timesharing system was widely used for program development.

VM/370 was followed by a series of upgrades: VM/ESA, VM/SEPP, VM/BSEPP, VM/SP, VM/HPO, VMXA/SF, VMXA/SP and z/VM
Z/VM
z/VM is the current version in IBM's VM family of virtual machine operating systems. z/VM was first released in October 2000 and remains in active use and development . It is directly based on technology and concepts dating back to the 1960s, with IBM's CP/CMS on the IBM System/360-67...

. IBM also produced optional microcode
Microcode
Microcode is a layer of hardware-level instructions and/or data structures involved in the implementation of higher level machine code instructions in many computers and other processors; it resides in special high-speed memory and translates machine instructions into sequences of detailed...

 assists for VM and successors, to speed up the hypervisor
Hypervisor
In computing, a hypervisor, also called virtual machine manager , is one of many hardware virtualization techniques that allow multiple operating systems, termed guests, to run concurrently on a host computer. It is so named because it is conceptually one level higher than a supervisory program...

's emulation
Emulator
In computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...

 of privileged instructions (those which only operating systems can use) on behalf of "guest" operating systems.

Time-sharing

Time-sharing (or timesharing) is based on the idea that computers are much faster than humans, so while one human user is reading what a computer has just displayed on a screen the computer can do some useful work for another user. Large time-sharing systems can have hundreds or even thousands of simultaneous users, and the memory required by their programs and data generally adds up to much more than the physical memory attached to the computer. Time-sharing systems solve this problem by various combinations of:
  • virtual memory, described below.
  • swapping
    Paging
    In computer operating systems, paging is one of the memory-management schemes by which a computer can store and retrieve data from secondary storage for use in main memory. In the paging memory-management scheme, the operating system retrieves data from secondary storage in same-size blocks called...

    , in other words while the computer is waiting for a response from one user it saves that user's programs and data on a disk, and reads it all back into its memory when the user sends a response. Swapping does not require virtual memory and was implemented before virtual memory. It transfers all of a user's programs and data between memory and disk, and is mainly driven by user's responses to information displayed by the system.

Virtual memory

Virtual memory is a memory management technique by which programs are made to work as if they have more memory available to them than is actually attached to the computer. Running programs' code and data may be scattered over several areas of physical memory or even placed on a disk until needed.

The main components of an IBM virtual memory system are:
  • Virtual memory, consisting of all memory addresses accessible by the CPU hardware. Virtual memory is an abstraction, so systems can easily have more virtual than real memory.
  • Pages, fixed-size blocks into which all virtual memory is divided. Most IBM operating systems use 4KB (4,096-byte) pages, although some older systems ran quite well with 2KB (2,048-byte) pages.
  • Real memory, Random access memory (RAM) attached to the computing system.
  • Page frames, realized by dividing all real memory into pieces equal to the system's page size. Virtual-memory pages must be placed into real-memory page frames before they can be used by the CPU and I/O channels.
  • Page Tables track the location of every virtual-memory page, whether in a real-memory page frame or on disk, in a paging file. Critical to memory management, Page Table entries also record the last time each page was accessed.
  • Dynamic Address Translation hardware (sometimes called a "DAT box" in early systems because of its separate enclosure) is integrated into the CPU itself and participates in every memory reference. If the Page Table shows the page in a real-memory page frame, DAT translates the virtual address to a real one and allows the memory access to complete. If, on the other hand, the referenced page is not in real memory, the DAT hardware generates an interrupt
    Interrupt
    In computing, an interrupt is an asynchronous signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution....

     (internal signal) which calls the Paging Supervisor into action.
  • The Paging Supervisor (part of the operating system) manages all memory, both real and virtual, moving pages between real memory and disk as needed, keeping the Page Table updated, servicing memory allocation requests, and cleaning up after itself. As the load on the system increases, a page can be referenced when all page frames are in use. When this happens, the paging supervisor typically identifies the page that has not been read or written for the longest interval of time (least-recently-used), copies the page to the paging file (on disk), updates the Page Table, and uses the newly available page frame to satisfy the memory request.


When functioning properly, the virtual memory system keeps active pages in real memory, inactive ones on disk, and allows more efficient execution of the systems workload.

Virtual machine

Virtual machine techniques enable several operating systems ("guest" operating systems) or other software to run on the same computer so that each thinks it has a whole computer to itself, and each of these simulated whole computers is called a "virtual machine". The operating system which really controls the computer is usually called a hypervisor
Hypervisor
In computing, a hypervisor, also called virtual machine manager , is one of many hardware virtualization techniques that allow multiple operating systems, termed guests, to run concurrently on a host computer. It is so named because it is conceptually one level higher than a supervisory program...

. Two of the major components of the hypervisor are:
  • Virtual memory management. Each virtual machine appears to have a complete range of addresses from 0 to some large number, and virtual memory techniques prevent different virtual machines from confusing each other.
  • Simulating "privileged" functions on behalf of the "guest" operating systems. "Privileged" functions are those which enable programs to take over all or at least large parts of the computer, and usually operating systems immediately terminate any other program which tries to use them. But "guest" operating systems think they are entitled to use these functions, so the hypervisor detects their attempts to do so and runs the privileged functions on their behalf, using virtual memory techniques to prevent them from corrupting memory areas used by other "guest" operating systems.

Further reading

  • Brooks, Jr., Frederick P.
    Fred Brooks
    Frederick Phillips Brooks, Jr. is a software engineer and computer scientist, best known for managing the development of IBM's System/360 family of computers and the OS/360 software support package, then later writing candidly about the process in his seminal book The Mythical Man-Month...

     (1975). "The Mythical Man-Month: Essays on Software Engineering
    The Mythical Man-Month
    The Mythical Man-Month: Essays on Software Engineering is a book on software engineering and project management by Fred Brooks, whose central theme is that "adding manpower to a late software project makes it later"...

    ", Addison-Wesley. ISBN 0-201-00650-2. (Reprinted with corrections, January 1982)
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK