The following notes provide brief quotes, primarily from Pugh, Varian, and Creasy, 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 for additional context.
- Genesis of the CP-40 project:
- CSC's Rasmussen felt "very dubious" about TSS/360 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... 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: " commitment 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 Atlas 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 and on CP-40.)
- CP-40 design: Pugh writes that: "In 1964...IBM Research were recommending the use of virtual-machine principles to time-sharing planners... picked up by the Cambridge team, 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 virtual machine program is actually executed in problem state.... Privileged instructions... reproduced 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 ...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: " close enough...to prove that 'close enough' did not count."
- CP-40 took the bold step of full virtualization, 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: " permitted 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 . (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 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.
Read more about this topic: IBM CP-40
Famous quotes containing the words historical and/or notes:
“Reason, progress, unselfishness, a wide historical perspective, expansiveness, generosity, enlightened self-interest. I had heard it all my life, and it filled me with despair.”
—Katherine Tait (b. 1923)
“Ceremony and ritual spring from our heart of hearts: those who govern us know it well, for they would sooner deny us bread than dare alter the observance of tradition.”
—F. Gonzalez-Crussi, Mexican professor of pathology, author. On Embalming, Notes of an Anatomist (1985)