Conversational Monitor System
Encyclopedia
The Conversational Monitor System (CMS; originally: "Cambridge Monitor System") is a relatively simple interactive computing
Interactive computing
In computer science, interactive computing refers to software which accepts input from humans — for example, data or commands. Interactive software includes most popular programs, such as word processors or spreadsheet applications. By comparison, noninteractive programs operate without human...

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

.
  • CMS is part of IBM's VM family
    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...

    , which runs on IBM mainframe
    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...

     computers. VM was first announced in 1972, and is still in use today (cf. 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...

    ).
  • CMS was originally developed as part of IBM's 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...

     operating system, which went into production use in 1967.


CMS runs as a "guest" operating system in a private 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...

 created by the VM control program. The control program plus CMS together create a multi-user time-sharing operating system.

History

CMS was originally developed as part of IBM's 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...

 operating system. At the time, the acronym meant "Cambridge Monitor System" (but also: "Console Monitor System").
  • CMS first ran under 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...

    , a one-off research system using custom hardware at 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...

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

    . (CTSS was used as an early 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...

     development platform.)

  • Later in 1967, 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...

     became generally available on the IBM System/360-67, where, although the new control program 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...

     was a substantial re-implementation of 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...

    , CMS remained essentially the same. IBM provided 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...

     "as is" – without any support, in source code form, as part of the IBM Type-III Library
    IBM Type-III Library
    The IBM Type-III Library was software provided by IBM to its customers, available without charge, liability, or support, and typically in source-code format...

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

     was thus an open source
    Open source
    The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

     system. Despite this lack of support from IBM, 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...

     achieved great success as a time-sharing platform; by 1972, there were some 44 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...

     systems in use, including commercial sites that resold access to 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...

    .


In 1972, IBM released its 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...

 operating system, a re-implementation 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...

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

, in an announcement that also added 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...

 hardware to the 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...

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

, VM/370 was supported by IBM. VM went through a series of versions, and is still in use today as 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...

.

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

. Many key user interface decisions familiar to today's users had already been made in 1965, as part of the 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...

 effort. See CMS under CP-40 for examples.

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

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

 had checkered histories at IBM. VM was not one of IBM's "strategic" operating systems, which were primarily the OS and DOS
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....

 families, and it suffered from IBM political infighting over 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...

 versus batch processing
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...

 goals. This conflict is why 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...

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

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

Architecture

CMS is an intrinsic part of the VM/CMS architecture, established with 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...

. Each CMS user has control over a private 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...

 – 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
    Full virtualization
    In computer science, full virtualization is a virtualization technique used to provide a certain kind of virtual machine environment, namely, one that is a complete simulation of the underlying hardware...

    , used to create multiple independent virtual machines that each completely simulate the underlying hardware
  • Paravirtualization
    Paravirtualization
    In computing, paravirtualization is a virtualization technique that presents a software interface to virtual machines that is similar but not identical to that of the underlying hardware....

    , used to provide 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...

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

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

 articles.

CMS was originally built as a stand-alone operating system, capable of running on a bare machine
Bare machine
Bare Machine, in computer parlance, means a computer without its operating system. Modern operating systems evolved through various stages, from elementary to the present day complex, highly sensitive real-time systems. In the very first stage of computing there was nothing like an Operating System...

 (though of course nobody would choose to do so). However, CMS can no longer run outside the VM environment, which provides 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...

 interface needed for various critical functions.

Features

CMS provides users an environment for running applications
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...

 or batch jobs
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...

, managing data files
Computer file
A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished...

, creating and debugging applications, doing cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

 development, and communicating with other systems or users.

CMS is still in development and wide use today.

Basic environment

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
Booting
In computing, booting is a process that begins when a user turns on a computer system and prepares the computer to perform its normal operations. On modern computers, this typically involves loading and starting an operating system. The boot sequence is the initial set of operations that the...

 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.

Terminal support

CMS started in the era of teletype-style paper terminals, and the later "glass teletype" dumb terminals. By the late 1970s, however, most VM users were connecting via full-screen terminals – particularly the IBM 3270
IBM 3270
The IBM 3270 is a class of block oriented terminals made by IBM since 1972 normally used to communicate with IBM mainframes. As such, it was the successor to the IBM 2260 display terminal. Due to the text colour on the original models, these terminals are informally known as green screen terminals...

, the ubiquitous transaction processing terminal on IBM mainframes. The 3270 played a strategic role in IBM's product line, making its selection a natural choice for large data centers of the day. Many other manufacturers eventually offered bisync terminals that emulated the 3270 protocol.

3270s had local buffer storage, some processing capabilities, and generally dealt with an entire screen of data at a time. They handled editing tasks locally, and then transmitted a set of fields (or the entire page) at once when the ENTER key or a program function key
Function key
A function key is a key on a computer or terminal keyboard which can be programmed so as to cause an operating system command interpreter or application program to perform certain actions...

 (PFK) was pressed.

The 3270 family incorporated "smart" control units, concentrators, and other network processing elements, communicating with the mainframe over dedicated circuits at relatively high speeds, via a bisync synchronous data transmission protocol. (These mainframe-oriented communication technologies provided some of the capabilities taken for granted in modern communication networks, such as device addressing, routing, error correction, and support for a variety of configurations such as multipoint
Multipoint
Multipoint may refer to:* Multi-point fuel injection, an injection scheme for metering fuel into an internal combustion engine* Multipoint ground, a type of electrical installation which involves the creation of many alternate paths for electrical energy to find its way back to ground* Multipoint...

 and multidrop topologies.)

Historical note: The 3270 approach differed from lower-cost dumb terminals of the period, which were point-to-point and asynchronous. Commercial 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...

 users, an important segment of early 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...

 and VM sites, relied on such devices because they could connect via 300- or 1200 bit/s modems over normal voice-grade telephone circuits. Installing a dedicated circuit for a 3270 was often not practical, economical, or timely.

The 3270's block-oriented
Block (telecommunications)
In telecommunications a block is one of:* A group of bits or digits that is transmitted as a unit and that may be encoded for error-control purposes....

 approach was more consistent with IBM's batch- and punched card-oriented view of computing, and was particularly important for IBM mainframes of the day. Unlike contemporary minicomputers, most IBM mainframes were not equipped for character-at-a-time interrupts. Dumb terminal support relied on terminal control units such as the IBM 270x (see IBM 3705) or Memorex 1270. These asynchronous terminal controller
Terminal controller
A Terminal controller is a device that collects traffic from a set of terminals and direct them to a concentrator....

s assembled a line of characters, up to a fixed maximum length, until the RETURN key was pressed. Typing too many characters would result in an error, a familiar situation to users of the day. (Most data centers did not include this equipment, except as needed for dial-up access. The 3270 approach was preferred.)

Block-oriented terminals like the 3270 made it practical to implement screen-oriented editors
Text editor
A text editor is a type of program used for editing plain text files.Text editors are often provided with operating systems or software development packages, and can be used to change configuration files and programming language source code....

 on mainframes – as opposed to line-oriented editors
Line editor
A line editor is a text editor computer program that manipulates text primarily by the display, modification, and movement of lines. Line editors precede screen-based text editors and originated in an era when a computer operator typically interacted with a teleprinter , with no video display, and...

, the previous norm. This had been an important advantage of contemporary minicomputers and other character-oriented systems, and its availability via the 3270 was warmly welcomed.

A gulf developed between the 3270 world, focused on page-oriented mainframe transaction processing (especially via 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...

), and the asynch terminal world, focused on character-oriented minicomputers and dial-up timesharing. Asynchronous terminal vendors gradually improved their products with a range of smart terminal
Smart terminal
In computing, smart terminal can mean either:* A thin client with local data processing capacity* A computer terminal that has capabilities for cursor positioning, or other display formatting capabilities beyond a text-mode teleprinter...

 features, usually accessed via escape sequences. However, these devices rarely competed for 3270 users; IBM maintained its dominance over mainframe data center hardware purchase decisions.

Viewed in retrospect, there was a major philosophical divergence between block-oriented and character-oriented computing. Asynchronous terminal controllers and 3270s both provided the mainframe with block-oriented interactions – essentially, they made the terminal input look like a card reader. This approach, preferred by IBM, led to the development of entirely different user interface paradigms and programming strategies. Character-oriented systems evolved differently. The difference is apparent when comparing the atomic transaction approach of dominant 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...

 with the interactive, stream-oriented style of UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

. VM/CMS evolved somewhere between these extremes. CMS has a command-driven, stateful
State (computer science)
In computer science and automata theory, a state is a unique configuration of information in a program or machine. It is a concept that occasionally extends into some forms of systems programming such as lexers and parsers....

, interactive environment, rather than adopting the CICS approach of a stateless
Stateless server
In computing, a stateless protocol is a communications protocol that treats each request as an independent transaction that is unrelated to any previous request so that the communication consists of independent pairs of requests and responses...

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

 interface. Yet CMS responds to page- or line-at-a-time interaction, instead of character interrupts.

Performance

CMS earned a very good reputation for being efficient, and for having good human factors for ease of use, relative to the standards of the time (and of course prior to widespread use of graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 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 common, 'trivial' functions. VM/CMS consistently outperformed MVS and other IBM operating systems in terms of support for simultaneous interactive users.

Programming and major applications

Many CMS users programmed in such languages 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....

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

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

, C/370
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

, APL
APL programming language
APL is an interactive array-oriented language and integrated development environment, which is available from a number of commercial and noncommercial vendors and for most computer platforms. It is based on a mathematical notation developed by Kenneth E...

, and the scripting language REXX
REXX
REXX is an interpreted programming language that was developed at IBM. It is a structured high-level programming language that was designed to be both easy to learn and easy to read...

. VM/CMS was often used as a development platform for production systems that ran under IBM's other operating systems, such 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...

.

Other CMS users worked with commercial software packages such as FOCUS
FOCUS
FOCUS is a computer programming language. It is a database query building language, regarded as a fourth-generation programming language. produced by Information Builders Inc...

, NOMAD
Nomad software
Nomad Software is a relational database and fourth-generation language , originally developed in the 70s by time-sharing vendor National CSS, Inc...

, SPSS
SPSS
SPSS is a computer program used for survey authoring and deployment , data mining , text analytics, statistical analysis, and collaboration and deployment ....

, and SAS
SAS System
SAS is an integrated system of software products provided by SAS Institute Inc. that enables programmers to perform:* retrieval, management, and mining* report writing and graphics* statistical analysis...

.

At one time, CMS was also a major environment for e-mail and office productivity; an important product was IBM's PROFS (later renamed OfficeVision
IBM OfficeVision
OfficeVision is an IBM proprietary office support application that primarily runs on IBM's VM operating system and its user interface CMS. Other platform versions are available, notably OV/MVS and OV/400...

).

Two commonly-used CMS tools are the editor XEDIT
XEDIT
XEDIT is a visual editor for VM/CMS using block mode IBM 3270 terminals.It is much more line-oriented than modern PC and Unix editors. For example, it supports automatic line numbers, and many of the commands operate on blocks of lines. One of the features is a command line which allows the user to...

 and the REXX
REXX
REXX is an interpreted programming language that was developed at IBM. It is a structured high-level programming language that was designed to be both easy to learn and easy to read...

programming language. Both of these products have been ported to other platforms, and are now widely used outside the mainframe environment.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK