Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Project goals  





2 Features  





3 Hardware platform  





4 CMS under CP-40  





5 Historical notes  





6 See also  





7 References  





8 Further reading  





9 Family tree  














IBM CP-40






العربية
Français
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


CP-40
DeveloperIBM Cambridge Scientific Center (CSC)
OS familyCP/CMS
Working stateHistoric
Initial releaseJanuary 1967; 57 years ago (1967-01)
Marketing targetIBM mainframe computers
Available inEnglish
PlatformsA unique, specially modified IBM System/360 Model 40
Default
user interface
Command-line interface
LicenseProprietary
Succeeded byCP-67

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 Model 67, and the parent of IBM's VM family. CP-40 ran multiple instances of client operating systems – particularly CMS, the Cambridge Monitor System,[1] 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 (CSC) staff, working closely with MIT researchers at Project MAC and Lincoln Laboratory. CP-40/CMS production use began in January 1967. CP-40 ran on a unique, specially modified IBM System/360 Model 40.

Project goals

[edit]

CP-40 was a one-off research system. Its declared goals were:

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. 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, UNIX, TENEX, and various DEC operating systems. Ultimately the virtualization concepts developed in the CP-40 project bore fruit in diverse areas, and remain important today.

Features

[edit]

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 faults, 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

[edit]

AModel 67 was not available for building CP-40, so a custom virtual memory device based on associative memory (the "CAT box"[2]) 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 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 – though both of these sites became notable IBM sales failures).

Three distinct virtual memory systems were implemented by IBM during this period:

These systems were all different, but bore a family resemblance. CP-40's CAT box was a key milestone. Pugh et al.[3] cite an IEEE paper[4] 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[s]... 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."

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

[edit]

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

These were radical departures from the difficult file naming, job control (via JCL), and other requirements of IBM's "real" operating systems.[5] (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."[6]

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

[edit]

The following notes provide brief quotes, primarily from Pugh, Varian, and Creasy [see 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 for additional context.

  • 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 [of CTSS] was split into CP and CMS." The value of experience gained on the CTSS project cannot be overstated.[17]
  • About early CMS, Creasy writes: CMS "provided single user service unencumbered by the problems of sharing, allocation, and protection."[18] 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.[19]

See also

[edit]

References

[edit]
  1. ^ Control Program-67/Cambridge Monitor System (GH20-0857-1). IBM. October 1971.
  • ^ Varian (1997), p. 11 (the "CAT box")
  • ^ Pugh, Johnson & Palmer (1991), p. 741 (note 218 to Ch. 6)
  • ^ A.B. Lindquist; R.R. Seeber; L.W. Comeau (December 1966). "A time-sharing system using an associative memory". Proceedings of the IEEE. 54 (12): 1774–1779. doi:10.1109/PROC.1966.5261.
  • ^ Varian (1997), p. 14 – novelty of CMS interface
  • ^ Creasy (1981), p. 489 – flat file system
  • ^ Varian (1997), pp. 3, 9, 16 – genesis of CP-40 project
  • ^ Creasy (1981), p. 485 – design goals
  • ^ W. O'Neill, "Experience using a time sharing multiprogramming system with dynamic address relocation hardware", Proc. AFIPS Computer Conference 30 (Spring Joint Computer Conference, 1967), pp. 611–621 – thrashing on IBM M44/44X
  • ^ L.W. Comeau, "Operating System/360 Paging Studies", IBM Storage Hierarchy System Symposium, December 1966 – thrashing on the Atlas, cited in Varian (1997), p. 17.
  • ^ Creasy (1981), p. 485 – similar to but independent of IBM M44/44X
  • ^ Creasy (1981), p. 486 – virtualization strategy: problem state execution, plus address translation
  • ^ Varian (1997), pp. 9, 13
  • ^ Comeau (1982), pp. 40, 42–43, cited in Varian (1997), pp. 9, 13
  • ^ L. Talkington, "A Good Idea and Still Growing", White Plains Development Center Newsletter, Vol. 2, No. 3 (March 1969), quoted in Varian (1997), p. 10.
  • ^ Pugh, Johnson & Palmer (1991), pp. 364–365
  • ^ Creasy (1981), p. 485 – separating CP from CMS
  • ^ Creasy (1981), p. 485 – scope of CMS
  • ^ Varian (1997), pp. 12, 15–16 – CMS booting under BPS
  • Further reading

    [edit]
    • Adair, R. J.; Bayles, R. U.; Comeau, L. W.; Creasy, R. J. (1966). A virtual machine system for the 360/40 (Report). Cambridge, MA: IBM, Cambridge Scientific Center. Report 320-2007., cited in Varian (1997) and Creasy (1981)
  • Comeau, L. W. (September 1982). "CP-40, the Origin of VM/370". Proceedings of SEAS AM82.
  • Creasy, R. J. (1981). "The origin of the VM/370 time-sharing system" (PDF). IBM Journal of Research & Development. 25 (5): 483–490. doi:10.1147/rd.255.0483.
  • Lingquist, A. B.; Seeber, R. R.; Comeau, L. W. (1966). "A time sharing system using an associative memory". Proc. IEEE. 54 (12): 1774–1779. doi:10.1109/PROC.1966.5261.
  • Pugh, Emerson W.; Johnson, Lyle R.; Palmer, John H. (1991). IBM's 360 and Early 370 Systems. Cambridge MA: MIT Press. ISBN 0-262-16123-0.
  • Varian, Melinda (1997). VM and the VM community, past present, and future (PDF). SHARE 89 Sessions 9059-9061.
  • Family tree

    [edit]
  • e
  • → derivation     >> strong influence     > some influence/precedence
     CTSS 
    > IBM M44/44X
    >> CP-40/CMS CP[-67]/CMS  VM/370 → VM/SE versions → VM/SP versions → VM/XA versions → VM/ESAz/VM
    VP/CSS
    > TSS/360
    > TSO for MVT → for OS/VS2 → for MVS → ... → for z/OS
    >> MULTICS and most other time-sharing platforms

    Retrieved from "https://en.wikipedia.org/w/index.php?title=IBM_CP-40&oldid=1212327985"

    Categories: 
    Virtualization software
    IBM mainframe operating systems
    History of software
    VM (operating system)
    1960s software
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    Short description is different from Wikidata
     



    This page was last edited on 7 March 2024, at 08:12 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki