CP-40 was a research precursor to
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 on ...
, which in turn was part of IBM's then-revolutionary
CP CMS">67CMS – a
virtual machine
In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized h ...
/
virtual memory
In computing, virtual memory, or virtual storage is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a very ...
time-sharing
In computing, time-sharing is the sharing of a computing resource among many users at the same time by means of multiprogramming and multi-tasking.DEC Timesharing (1965), by Peter Clark, The DEC Professional, Volume 1, Number 1
Its emergence ...
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
for the
IBM System/360 Model 67
IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the large computer market. Current mainframe computers in IBM's line of business computers are developments of the basic design of th ...
, and the parent of IBM's
VM family. CP-40 ran multiple instances of client operating systems – particularly
CMS
CMS may refer to:
Computing
* Call management system
* CMS-2 (programming language), used by the United States Navy
* Code Morphing Software, a technology used by Transmeta
* Collection management system for a museum collection
* Color manag ...
, the ''Cambridge Monitor System'', built as part of the same effort. Like CP-67, CP-40 and the first version of CMS were developed by IBM's
Cambridge Scientific Center The IBM Cambridge Scientific Center was a company research laboratory established in February 1964 in Cambridge, Massachusetts. Situated at 545 Technology Square (''Tech Square''), in the same building as MIT's Project MAC, it was later renamed ...
(CSC) staff, working closely with MIT researchers at
Project MAC
Computer Science and Artificial Intelligence Laboratory (CSAIL) is a research institute at the Massachusetts Institute of Technology (MIT) formed by the 2003 merger of the Laboratory for Computer Science (LCS) and the Artificial Intelligence Lab ...
and
Lincoln Laboratory
The MIT Lincoln Laboratory, located in Lexington, Massachusetts, is a United States Department of Defense federally funded research and development center chartered to apply advanced technology to problems of national security. Research and de ...
. CP-40/CMS production use began in January 1967. CP-40 ran on a unique, specially modified
IBM System/360 Model 40
The IBM System/360 Model 40 was a mid-range member of the IBM System/360 family. It was announced on April 7, 1964, shipped in 1965, and withdrawn on October 7, 1977.
History
On April 7, 1964, IBM announced the IBM System/360, to be availa ...
.
Project goals
CP-40 was a one-off research system. Its declared goals were:
* Provide research input to the System/360 Model 67 team working in Poughkeepsie, who were breaking new ground with the as-yet-unproven concept of virtual memory.
* Support CSC's time-sharing requirements in Cambridge.
However, there was also an important unofficial mission: To demonstrate IBM's commitment to and capability for supporting time-sharing users like MIT. CP-40 (and its successor) achieved its goals from technical and social standpoints – they helped to prove the viability of virtual machines, to establish a culture of time-sharing users, and to launch a remote computer services industry. However, the project became embroiled in an internal IBM political war over time-sharing versus batch processing; and it failed to win the hearts and minds of the academic computer science community, which ultimately turned away from IBM to systems like
Multics
Multics ("Multiplexed Information and Computing Service") is an influential early time-sharing operating system based on the concept of a single-level memory.Dennis M. Ritchie, "The Evolution of the Unix Time-sharing System", Communications of ...
,
UNIX
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, an ...
,
TENEX, and various
DEC operating systems. Ultimately, however, the virtualization concepts developed in the CP-40 project bore fruit in diverse areas, and remain important today.
Features
CP-40 was the first operating system that implemented complete virtualization, i.e. it provided a virtual machine environment supporting all aspects of its target computer system (a S/360-40), such that other S/360 operating systems could be installed, tested, and used as if on a stand-alone machine. CP-40 supported fourteen simultaneous virtual machines. Each virtual machine ran in "problem state" – privileged instructions such as I/O operations caused exceptions, which were then caught by the control program and simulated. Similarly, references to virtual memory locations not present in main memory cause
page fault
In computing, a page fault (sometimes called PF or hard fault) is an exception that the memory management unit (MMU) raises when a process accesses a memory page without proper preparations. Accessing the page requires a mapping to be added t ...
s, which again were handled by control program rather than reflected to the virtual machine. Further details on this implementation are found in
CP/CMS (architecture).
The basic architecture and user interface of CP-40 were carried forward into
CP-67/CMS, which evolved to become IBM's current VM product line.
Hardware platform
A
Model 67 was not available for building CP-40, so a custom virtual memory device based on associative memory (the "CAT box") was designed and built for CSC. It involved both hardware and microcode changes to a specially modified System/360 Model 40. These changes gave the unit the technology needed for
full virtualization
In computer science, virtualization is a modern technique developed in late 1990s and is different from simulation and emulation. Virtualization employs techniques used to create instances of an environment, as opposed to simulation, which model ...
of the System/360 hardware. This modified Model 40 influenced the design of the forthcoming Model 67, which was intended to meet the needs of the same community of time-sharing users (notably MIT's Project MAC and
Bell Laboratories
Nokia Bell Labs, originally named Bell Telephone Laboratories (1925–1984),
then AT&T Bell Laboratories (1984–1996)
and Bell Labs Innovations (1996–2007),
is an American industrial research and scientific development company owned by mult ...
– though both of these sites became notable IBM sales failures).
Three distinct virtual memory systems were implemented by IBM during this period:
* The "Blaauw Box" (named for
Gerry Blaauw
Gerrit Anne "Gerry" Blaauw (July 17, 1924 – March 21, 2018) was a Dutch computer scientist, known as one of the principal designers of the IBM System/360 line of computers, together with Fred Brooks, Gene Amdahl, and others. ), part of the original design of the S/360-67
* The "CAT Box" (Cambridge Address Translator), added to CSC's S/360-40 to run CP-40
* The "DAT Box" (Dynamic Address Translation), announced as an addition to the
S/370
The IBM System/370 (S/370) is a model range of IBM mainframe computers announced on June 30, 1970, as the successors to the System/360 family. The series mostly maintains backward compatibility with the S/360, allowing an easy migration path f ...
series in 1972
These systems were all different, but bore a family resemblance. CP-40's CAT box was a key milestone. Pugh ''et al.'' cite an IEEE paper about the CP-40 virtual memory hardware, and states that it was ''"unique in that it included a parallel-search register bank to speed dynamic address translation. With funds supplied by Cambridge, IBM engineer
..built a 64-register associative memory and integrated it into a 360/40. The one-of-a-kind result was shipped to Cambridge early in 1966."''
It is important to note that, although virtualization support was an explicit goal for CSC's modified Model 40, this was ''not'' apparently the case for the original Model 67 design. The fact that virtualization capabilities were ultimately implemented in the -67, and thus enabled the success of
CP-67/CMS, speaks to the tenacity and persuasiveness of the CSC team.
CMS under CP-40
CMS was first built in 1964 at CSC to run as a 'client' operating system under CP-40. The CMS project leader was John Harmon. Although any S/360 operating system could be run in a CP-40 virtual machine, it was decided that a new, simple, single-user interactive operating system would be best for supporting interactive time-sharing users. This would avoid the complexity and overhead of running a multi-user system like
CTSS. (Contrast this with IBM's
OS/MVT-TSO and its successors – essentially a time-sharing operating system running as a single task under an IBM batch operating system. With CMS, each interactive user gets a private virtual machine.)
By September 1965, many important CMS design decisions had already been made:
* User-friendly commands, with default-mode, non-required parameters wherever possible (for ease of use and training, and to minimize job control requirements)
* A basic set of file system commands and macros; a simple file naming convention, based on filename, filetype, and filemode (filemode = logical disk identifier or
minidisk, a form of
drive letter assignment
In computer data storage, drive letter assignment is the process of assigning alphabetical identifiers to volumes. Unlike the concept of UNIX mount points, where volumes are named and located arbitrarily in a single hierarchical namespace, dri ...
)
* Records mapped to fixed-size blocks, that could be read or written by relative record number
* Files that could be created simply by writing to them, without the need for special 'create' operations
* Default filemodes, allowing disks to be searched in a fixed order
These were radical departures from the difficult file naming, job control (via JCL), and other requirements of IBM's "real" operating systems. (Some of these concepts had been goals for operating systems from other vendors, such as
Control Data Corporation and
DEC.)
The CMS file system design, with its
flat directory structure, was kept deliberately simple. Creasy notes: "This structure of multiple disks, each with a single directory, was chosen to be simple but useful. Multi-level linked directories, with files stored in common areas, had been the design trend when we began. We simplified the design of this and other components of CMS to reduce implementation complexity."
Application programs running under CMS executed within the same address space. They accessed system services, such as the CMS file system, through a simple programming interface to the ''
CMS nucleus'', which resided in low memory within the CMS virtual machine. A variety of system calls were provided, most of which would be familiar to current CMS programmers. (Since applications ran in the CMS virtual machine, they could potentially misbehave, by overwriting CMS data, using privileged instructions, or taking other actions that could take over or crash the virtual machine. Of course, doing so could ''not'' affect other virtual machines, which were all mutually isolated; nor could it damage the underlying control program. Unlike most operating systems, CP crashes rarely stemmed from application errors – and were thus themselves relatively rare.)
Historical notes
The following notes provide brief quotes, primarily from Pugh, Varian, and Creasy
ee references illustrating the development context of CP-40. Direct quotes rather than paraphrases are provided here, because the authors' perspectives color their interpretations. Also see
History of CP/CMS
This article covers the History of CP/CMS — the historical context in which the IBM time-sharing virtual machine operating system was built.
CP/CMS development occurred in a complex political and technical ''milieu''.
Historical notes, below, ...
for additional context.
* Genesis of the CP-40 project:
** CSC's Rasmussen felt "very dubious" about
TSS/360
The IBM Time Sharing System TSS/360 is a discontinued 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 custom ...
and decided that his idle CSC resources should be put to use creating a "credible time-sharing system for the S/360", which became known as CP-40. Project leader was Robert Creasy, who had been a
CTSS programmer.
** CP-40 goals included both conducting research (obtaining and analyzing data about systems and software, including the use of associative memory) and meeting CSC's own computing requirements via time-sharing. Varian adds: "The project’s real purpose was to build a time-sharing system, but the other objectives were genuine, too, and they were always emphasized in order to disguise the project’s “counter-strategic” aspects." Creasy describes CP/CMS goals this way: It was to be "a second generation time-sharing system for the newly announced IBM System/360...
hat would
A hat is a head covering which is worn for various reasons, including protection against weather conditions, ceremonial reasons such as university graduation, religious reasons, safety, or as a fashion accessory. Hats which incorporate mecha ...
support all the activities of the Cambridge center, including such diverse activities as operating system research, application development, and report preparation by programmers, scientists, secretaries, and managers. Soon after its inception, it was convenient for the system to be recognized and financially supported from outside of the center as a tool to evaluate and test the performance of operating systems."
** CSC's research was important to IBM, because at the time, "not much was really known about virtual memory systems." Varian quotes L.W. Comeau: "
BM'scommitment to virtual memory was backed with no successful experience.... What was frightening is that nobody who was setting this virtual memory direction at IBM knew why
he contemporary virtual memory system FerrantiAtlas didn’t work." (Comeau later concluded that the Atlas had suffered from
thrashing, which was not studied until it was observed on the
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 (the 'M44'), and simulated multiple 7044 virtual mach ...
and on CP-40.)
* CP-40 design: Pugh ''et al.'' write that: "In 1964...IBM Research were recommending the use of virtual-machine principles to time-sharing planners...
hich were
Ij ( fa, ايج, also Romanized as Īj; also known as Hich and Īch) is a village in Golabar Rural District, in the Central District of Ijrud County, Zanjan Province, Iran
Iran, officially the Islamic Republic of Iran, and al ...
picked up by the Cambridge
SCteam, who wanted, among other things, a system capable of testing operating systems." A key design decision, made by Creasy and Comeau at the end of 1964, was to base CP-40 not just on virtual memory but on ''virtual machines'' (at first called ''pseudo-machines'', until the later term was appropriated from the IBM M44/44X project – which Creasy describes as having "similar but independent ideas." Creasy provides a clear description of CP's virtualization strategy, based on the S/360
instruction set, which consisted of privileged 'supervisor state' instructions distinct from normal 'problem state' instructions: "Each
Pvirtual machine program is actually executed
ntirelyin problem state.... Privileged instructions...
rereproduced by CP within the virtual machines...." By running an OS in problem state, all the 'tricky' instructions would automatically be intercepted by the hardware. This left just one main virtualization problem: memory references. "Experience
ith CTSS
The Ith () is a ridge in Germany's Central Uplands which is up to 439 m high. It lies about 40 km southwest of Hanover and, at 22 kilometres, is the longest line of crags in North Germany.
Geography
Location
The Ith is immediatel ...
..suggested the need for dynamic program relocation...to break programs into pieces which could be moved into, out of, and within the memory independently of each other."
* CP-40 virtual machines:
** Earlier research projects involving the virtual machine concept, such as the IBM M44/44X, had not attempted to create an exact virtual duplicate of a real machine. Creasy: "
hey were
Hey or Hey! may refer to:
Music
* Hey (band), a Polish rock band
Albums
* ''Hey'' (Andreas Bourani album) or the title song (see below), 2014
* ''Hey!'' (Julio Iglesias album) or the title song, 1980
* ''Hey!'' (Jullie album) or the title s ...
close enough...to prove that 'close enough' did not count."
** CP-40 took the bold step of
full virtualization
In computer science, virtualization is a modern technique developed in late 1990s and is different from simulation and emulation. Virtualization employs techniques used to create instances of an environment, as opposed to simulation, which model ...
, creating fourteen virtual S/360 environments, each with a fixed virtual memory size of 256K, mapped access to disk partitions, and spooled access to unit record devices (e.g. printers). Comeau: "
reating full virtualizationpermitted simultaneous development of CP and CMS; it allowed us to measure non-virtual systems, OS and DOS, in a virtual memory environment, and it also provided a high level of integrity and security."
** In addition to revealing the value of full virtualization, the experimental IBM M44/44X "implanted the idea that the virtual machine concept is not necessarily less efficient than more conventional approaches" – a core assumption in the CP-40 architecture, and one that ultimately proved very successful.
** CP-40 would soon support "up to a dozen virtual System/360 machines" under terminal control
ost sources state fourteen (CP-67 later "exploited...address-translation...and increased speed...to double the capacity" of CP-40.)
* CMS under CP-40:
:* About the decision to separate CMS and CP, Creasy writes: "The implementation of CTSS illustrated the necessity of modular design for system evolution. Although successful as a production system, the interconnections and dependencies of its supervisor design made extension and change difficult. A key concept of the CP/CMS design was the bifurcation of computer resource management and user support. In effect, the integrated design
f CTSS
F, or f, is the sixth letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''ef'' (pronounced ), and the plural is ''efs''.
Hist ...
was split into CP and CMS." The value of experience gained on the CTSS project cannot be overstated.
:* About early CMS, Creasy writes: CMS "provided single user service unencumbered by the problems of sharing, allocation, and protection." Early CMS development involved booting CMS under
BPS, an early S/360 support system, until CMS was far enough along to boot stand-alone. Eventually development moved to virtual machines under CP.
[ – CMS booting under BPS]
See also
*
CP CMS">67CMS: The widely used successor to CP-40, and the precursor to IBM's VM systems
*
Cambridge Scientific Center The IBM Cambridge Scientific Center was a company research laboratory established in February 1964 in Cambridge, Massachusetts. Situated at 545 Technology Square (''Tech Square''), in the same building as MIT's Project MAC, it was later renamed ...
, where CP-40 and
CP/CMS
CP/CMS (Control Program/Cambridge Monitor System) is a discontinued time-sharing operating system of the late 1960s and early 1970s, known for its excellent performance and advanced features. It had three distinct versions:
* CP-40/CMS, an im ...
were built
*
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 (the 'M44'), and simulated multiple 7044 virtual mach ...
, a contemporary experimental paging system
*
History of CP/CMS
This article covers the History of CP/CMS — the historical context in which the IBM time-sharing virtual machine operating system was built.
CP/CMS development occurred in a complex political and technical ''milieu''.
Historical notes, below, ...
, a review of events and issues leading to the creation of CP-40
*
Time-sharing system evolution This article covers the evolution of time-sharing systems, providing links to major early time-sharing operating systems, showing their subsequent evolution.
Time-sharing
Time-sharing was first proposed in the mid- to late-1950s and first impleme ...
References
Further reading
*, cited in and
*
*
*
*
*
Family tree
{{IBM operating systems
Virtualization software
CP-40
CP-40 was a research precursor to CP-67, which in turn was part of IBM's then-revolutionary CP/CMS, CP 67CMS – a virtual machine/virtual memory time-sharing operating system for the IBM System/360 Model 67, and the parent of IBM's VM (operati ...
CP-40
CP-40 was a research precursor to CP-67, which in turn was part of IBM's then-revolutionary CP/CMS, CP 67CMS – a virtual machine/virtual memory time-sharing operating system for the IBM System/360 Model 67, and the parent of IBM's VM (operati ...
VM (operating system)
1960s software