Conversational Monitor System

From Wikipedia, the free encyclopedia

The Conversational Monitor System (CMS; originally: "Cambridge 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. VM was first announced in 1972, and is still in use today (cf. z/VM).
  • CMS was originally developed as part of IBM's CP/CMS operating system, which went into production use in 1967.

CMS runs as a "guest" operating system in a private virtual machine created by the VM control program. The control program plus CMS together create a multi-user time-sharing operating system.

Contents

[edit] History

CMS was originally developed as part of IBM's CP/CMS operating system. At the time, the acronym meant "Cambridge Monitor System" (but also: "Console Monitor System").

  • CMS first ran under CP-40, a one-off research system using custom hardware at IBM's Cambridge Scientific Center. Production use at CSC began in January 1967. The CMS user interface drew heavily on experience with the influential first-generation time-sharing system CTSS, some of whose developers worked on CP/CMS. (CTSS was used as an early CP/CMS development platform.)
  • Later in 1967, CP/CMS became generally available on the IBM System/360-67, where, although the new control program CP-67 was a substantial re-implementation of CP-40, CMS remained essentially the same. IBM provided CP/CMS "as is" – without any support, in source code form, as part of the IBM Type-III Library. CP/CMS was thus an open source system. Despite this lack of support from IBM, CP/CMS achieved great success as a time-sharing platform; by 1972, there were some 44 CP/CMS systems in use, including commercial sites that resold access to CP/CMS.

In 1972, IBM released its VM/370 operating system, a re-implementation of CP/CMS for the System/370, in an announcement that also added virtual memory hardware to the System/370 series. Unlike CP/CMS, VM/370 was supported by IBM. VM went through a series of versions, and is still in use today as z/VM.

Through all its distinct versions and releases, the CMS platform remained still quite recognizable as a close descendant of the original CMS version running under CP-40. Many key user interface decisions familiar to today's users had already been made in 1965, as part of the CP-40 effort. See CMS under CP-40 for examples.

Both VM and CP/CMS had checkered histories at IBM. VM was not one of IBM's "strategic" operating systems, which were primarily the OS and DOS families, and it suffered from IBM political infighting over time-sharing versus batch processing goals. This conflict is why CP/CMS was originally released as an unsupported system, and why VM often had limited development and support resources within IBM. An exceptionally strong user community, first established in the self-support days of CP/CMS but remaining active after the launch of VM, made substantial contributions to the operating system, and mitigated the difficulties of running IBM's "other operating system".

[edit] Architecture

CMS is an intrinsic part of the VM/CMS architecture, established with CP/CMS. Each CMS user has control over a private virtual machine – a simulated copy of the underlying physical computer – in which CMS runs as a stand-alone operating system. This approach has remained consistent through the years, and is based on:

  • Full virtualization, used to create multiple independent virtual machines that each completely simulate the underlying hardware
  • Paravirtualization, used to provide a hypervisor interface that CMS uses to access VM services; this is implemented by the non-virtualized DIAG (diagnose) instruction

More details on how CMS interacts with the virtual machine environment can be found in the VM and CP/CMS articles.

CMS was originally was built as a stand-alone operating system, capable of running on a bare machine (though of course nobody would choose to do so). However, CMS can no longer run outside the VM environment, which provides the hypervisor interface needed for various critical functions.

[edit] Features

CMS provides users an environment for running applications or batch jobs, manage data files, create and debug applications, and communicate with other systems or users.

Users log in to VM, providing a userid and password, and then boot their own virtual machine. This can be done by issuing the command "IPL CMS" ("IPL" = initial program load, traditional IBM jargon for booting a machine); though this is normally done automatically for the user. Personal customization is done by a standard shell script file named "PROFILE EXEC", which sets up user-specified environmental defaults, such as which disks and libraries are accessed.

CMS started in the era of teletype-style paper terminals; but by the late 1970s, most VM users were connecting with full-screen terminals, particularly the IBM 3270. Unlike dumb terminals, these had local buffer storage and minimal processing abilities, and dealt with an entire screen of information at a time. Since the terminal would handle editing tasks, and then transmit an entire screen of data at once, overall system performance was improved. The mainframe didn't have to deal with every keystroke typed by a user; the entire set of updated screen fields was transmitted to the mainframe when the ENTER key or a program function key was pressed. This block-oriented approach, more consistent with IBM's batch- and punchcard-oriented view of computing, was particularly important on IBM mainframes of the day: Unlike minicomputers of the day, most mainframes were not equipped for character-at-a-time interrupts. Dumb terminal support was instead provided via terminal control units, e.g. IBM 270x (see IBM 3705) or Memorex 1270, that would assemble a line of characters (up to a fixed maximum length) until the ENTER key was pressed.

CMS earned a very good reputation for being efficient and having good human factors for ease of use, relative to the standards of the time (and of course prior to widespread use of "GUI" environments such as are commonly used today). It was not uncommon to have hundreds (later: thousands) of concurrent CMS interactive users on the same VM mainframe, with sub-second response times for the most common, 'trivial' functions. Some CMS users programmed in such languages as COBOL, FORTRAN, PL/I, APL, or the scripting language REXX. Others used commercial software packages such as FOCUS, NOMAD, or SAS. At one time, CMS was a major environment for e-mail and office productivity, using the IBM product PROFS, which was later renamed OfficeVision.

Two commonly-used CMS tools are the editor XEDIT and the REXX programming language. Both of these products have been ported to other platforms, and are now widely used outside the mainframe environment.

CMS is still in development and wide use today.

[edit] References

See VM (operating system) for VM-related sources and source citations.

Primary CP/CMS sources

  • R. J. Creasy, "The origin of the VM/370 time-sharing system", IBM Journal of Research & Development, Vol. 25, No. 5 (September 1981), pp. 483-490, available on-line at research.ibm.com
    – perspective on CP/CMS and VM history by the CP-40 project lead, also a CTSS author
  • E.W. Pugh, L.R. Johnson, and John H. Palmer, IBM's 360 and early 370 systems, MIT Press, Cambridge MA and London, ISBN 0-262-16123-0
    – extensive (819 pp.) treatment of IBM's offerings during this period; the limited coverage of CP/CMS in such a definitive work is telling
  • Melinda Varian, VM and the VM community, past present, and future, SHARE 89 Sessions 9059-9061, 1977; available online at www.princeton.edu/~melinda
    – and outstanding source for CP/CMS and VM history

Additional CP/CMS sources

  • R. J. Adair, R. U. Bayles, L. W. Comeau, and R. J. Creasy, A Virtual Machine System for the 360/40, IBM Corporation, Cambridge Scientific Center Report No. 320-2007 (May 1966)
    – a seminal paper describing implementation of the virtual machine concept, with descriptions of the customized CSC S/360-40 and the CP-40 design
  • International Business Machines Corporation, CP-67/CMS, Program 360D-05.2.005, IBM Program Information Department (June 1969)
    – IBM's reference manual
  • R. A. Meyer and L. H. Seawright, "A virtual machine time-sharing system," IBM Systems Journal, Vol. 9, No. 3, pp. 199-218 (September 1970)
    – describes the CP-67/CMS system, outlining features and applications
  • R. P. Parmelee, T. I. Peterson, C. C. Tillman, and D. J. Hatfield, "Virtual storage and virtual machine concepts," IBM Systems Journal, Vol. 11, No. 2 (June 1972)

Background CP/CMS sources

  • F. J. Corbató, et al., The Compatible Time-Sharing System, A Programmer’s Guide, M.I.T. Press, 1963
  • F. J. Corbató, M. Merwin-Daggett, and R. C. Daley, "An Experimental Time-sharing System," Proc. Spring Joint Computer Conference (AFIPS) 21, pp. 335-344 (1962) – description of CTSS
  • F. J. Corbató and V. A. Vyssotsky, "Introduction and Overview of the MULTICS System", Proc. Fall Joint Computer Conference (AFIPS) 27, pp. 185-196 (1965)
  • P. J. Denning, "Virtual Memory", Computing Surveys Vol. 2, pp. 153-189 (1970)
  • J. B. Dennis, "Segmentation and the Design of Multi-Programmed Computer Systems," JACM Vol. 12, pp. 589-602 (1965)
    – virtual memory requirements for Project MAC, destined for GE 645
  • C. A. R. Hoare and R. H. Perrott, Eds., Operating Systems Techniques, Academic Press, Inc., New York (1972)
  • T. Kilburn, D. B. G. Edwards, M. J. Lanigan, and F. H. Sumner, "One-Level Storage System", IRE Trans. Electron. Computers EC-11, pp. 223-235 (1962)
    – Manchester/Ferranti Atlas
  • R. A. Nelson, "Mapping Devices and the M44 Data Processing System," Research Report RC 1303, IBM Thomas J. Watson Research Center (1964)
    – about the IBM M44/44X
  • R. P. Parmelee, T. I. Peterson, C. C. Tillman, and D. J. Hatfield, "Virtual Storage and Virtual Machine Concepts", IBM Systems Journal, Vol. 11, pp. 99-130 (1972)

Additional on-line CP/CMS resources

In other languages