SIMMON
Encyclopedia
SIMMON was a proprietary
software testing
system developed in the late 1960s in the IBM Product Test Laboratory
, then at Poughkeepsie, N.Y.
It was designed for the then-new line of System/360 computers as a vehicle for testing the software that IBM was developing for that architecture.
SIMMON was first described at the IBM SimSymp 1968 symposium, held at Rye, New York.
SIMMON was a hypervisor
, similar to the IBM CP-40
system that was being independently developed at the Cambridge Scientific Center
at about that same time. The chief difference from CP-40 was that SIMMON supported a single virtual machine
for testing of a single guest program running there. CP-40 supported many virtual machines for time-sharing
production work. CP-40 evolved by many stages into the present VM/CMS
operating system. SIMMON was a useful test vehicle for many years.
SIMMON was designed to dynamically include independently developed programs (test tools) for testing the target guest program. The SIMMON kernel maintained control over the hardware (and the guest) and coordinated invocation of the test tools.
, SIMMON was unusual in that it simulated the same architecture as that on which it was running, i.e. that of the IBM System/360/370. While an order of magnitude slower than Interrupt mode (below), it allowed close attention to the operation of the guest. This would be the mode used by various instruction trace test tools.
s and simulating all privileged instructions the guest attempted to execute. This mode could be used, for example, by a test tool to simulate hardware devices.
This test tool was developed to test the device support
error recovery in IBM's PCP (Primary Control Program) operating system, then being developed. It used a novel and very efficient table-driven finite state machine
(FSM) to inject simulated errors and verify that the operating system followed the detailed specifications of actions to be taken to attempt recovery.
The table driven FSM aspect was granted U.S. Patent
3,702,007 in October, 1972.
tool.
It operated by allowing the program under test to run in Interrupt mode, but also used the system timer to periodically interrupt it.
The addresses where the tested program was interrupted were recorded and later summarized and tabulated in the form of a map, showing the density of interrupts over the memory addresses. The result resembled nuclear scintigraphy
images, showing the parts of the program most frequently used under the test conditions.
data was written to tape, then summarized. The report took the form of a listing similar to a storage dump
, with program entry points and exit points identified, including frequency of use for each instruction sequence.
These data identified the Memory Management
component as consuming about 20% of CPU resources, and was used to justify a task force
to try to improve the performance.
sections. Unless a SIMMON tool was put in place to normalize and delay I/O events, these would appear to the guest program as happening unnaturally quickly.
These were some of the programs that had been run under SIMMON:
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...
software testing
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...
system developed in the late 1960s in the IBM Product Test Laboratory
IBM Product Test
IBM Product Test was a group level organization for testing of IBM hardware and software products as part of the product development rather than manufacturing. It was housed in a number of laboratories associated with the various manufacturing and software development facilities...
, then at Poughkeepsie, N.Y.
Poughkeepsie (city), New York
Poughkeepsie is a city in the state of New York, United States, which serves as the county seat of Dutchess County. Poughkeepsie is located in the Hudson River Valley midway between New York City and Albany...
It was designed for the then-new line of System/360 computers as a vehicle for testing the software that IBM was developing for that architecture.
SIMMON was first described at the IBM SimSymp 1968 symposium, held at Rye, New York.
SIMMON was 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...
, similar to the IBM 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...
system that was being independently developed at the 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...
at about that same time. The chief difference from CP-40 was that SIMMON supported a single 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...
for testing of a single guest program running there. CP-40 supported many virtual machines for 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...
production work. CP-40 evolved by many stages into the present VM/CMS
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. SIMMON was a useful test vehicle for many years.
SIMMON was designed to dynamically include independently developed programs (test tools) for testing the target guest program. The SIMMON kernel maintained control over the hardware (and the guest) and coordinated invocation of the test tools.
Full simulation mode
In this mode, each instruction in the guest program was simulated without ever passing control directly to the guest. As an Instruction Set SimulatorInstruction Set Simulator
An instruction set simulator is a simulation model, usually coded in a high-level programming language, which mimics the behavior of a mainframe or microprocessor by "reading" instructions and maintaining internal variables which represent the processor's registers.Instruction simulation is a...
, SIMMON was unusual in that it simulated the same architecture as that on which it was running, i.e. that of the IBM System/360/370. While an order of magnitude slower than Interrupt mode (below), it allowed close attention to the operation of the guest. This would be the mode used by various instruction trace test tools.
Interrupt mode
Interrupt mode (a/k/a Bump mode) constrained the guest program to run in user program state, with the SIMMON kernel handling all hardware interruptInterrupt
In computing, an interrupt is an asynchronous signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution....
s and simulating all privileged instructions the guest attempted to execute. This mode could be used, for example, by a test tool to simulate hardware devices.
ERGENT
(ERror GENeration and Test)This test tool was developed to test the device support
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...
error recovery in IBM's PCP (Primary Control Program) operating system, then being developed. It used a novel and very efficient table-driven finite state machine
Finite state machine
A finite-state machine or finite-state automaton , or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states...
(FSM) to inject simulated errors and verify that the operating system followed the detailed specifications of actions to be taken to attempt recovery.
The table driven FSM aspect was granted U.S. Patent
Patent
A patent is a form of intellectual property. It consists of a set of exclusive rights granted by a sovereign state to an inventor or their assignee for a limited period of time in exchange for the public disclosure of an invention....
3,702,007 in October, 1972.
MAPPER
MAPPER (not to be confused with the Unisys product of the same name) was a statistical performance analysisPerformance analysis
In software engineering, profiling is a form of dynamic program analysis that measures, for example, the usage of memory, the usage of particular instructions, or frequency and duration of function calls...
tool.
It operated by allowing the program under test to run in Interrupt mode, but also used the system timer to periodically interrupt it.
The addresses where the tested program was interrupted were recorded and later summarized and tabulated in the form of a map, showing the density of interrupts over the memory addresses. The result resembled nuclear scintigraphy
Nuclear medicine
In nuclear medicine procedures, elemental radionuclides are combined with other elements to form chemical compounds, or else combined with existing pharmaceutical compounds, to form radiopharmaceuticals. These radiopharmaceuticals, once administered to the patient, can localize to specific organs...
images, showing the parts of the program most frequently used under the test conditions.
HOTSPOTS
HOTSPOTS was an instruction trace tool written to help identify performance problem areas in IBM's MFT operating system. Branch traceBranch trace
A computer program debugging tool or analysis technique; An abbreviated instruction trace in which only the branch instructions are recorded. On IBM System/360 this was implemented as part of Program-Event Recording but was seldom used at the application programming level...
data was written to tape, then summarized. The report took the form of a listing similar to a storage dump
Core dump
In computing, a core dump consists of the recorded state of the working memory of a computer program at a specific time, generally when the program has terminated abnormally...
, with program entry points and exit points identified, including frequency of use for each instruction sequence.
These data identified the Memory Management
Memory management
Memory management is the act of managing computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. This is critical to the computer system.Several...
component as consuming about 20% of CPU resources, and was used to justify a task force
Task force
A task force is a unit or formation established to work on a single defined task or activity. Originally introduced by the United States Navy, the term has now caught on for general usage and is a standard part of NATO terminology...
to try to improve the performance.
Stress
While not a specific test tool, the distorted timing relationships while running under SIMMON found a number of problems, particularly in the input/outputInput/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...
sections. Unless a SIMMON tool was put in place to normalize and delay I/O events, these would appear to the guest program as happening unnaturally quickly.
Programs tested
Programs under test -- so-called guest programs -- had to be capable of stand-alone operation on the bare hardware. SIMMON provided services for the test tools, but not the guest.These were some of the programs that had been run under SIMMON:
- Various Customer EngineerCustomer EngineerA Customer Engineer is a person whose primary job scope is to provide a service to customers who has signed a contract with the company. Originally, the term was used by IBM, but now Customer Engineer is also being used by other companies....
(CE) stand-alone diagnostic programDiagnostic program-Traditional Definition:A diagnostic program is a program written for the express purpose of examining the state, or locating problems with the hardware, or operating system environment that it is running on/in.It repairs the PC-Evolved Definition:...
s - DOS/360DOS/360Disk 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....
(including BOS and TOS) - OS/360 (PCP. MFT and MVS)
- A number of Product Test tools
See also
- SIMONSIMON (Batch Interactive test/debug)SIMON was a proprietary test/debugging toolkit for interactively testing Batch programs designed to run on IBM's System 360/370/390 architecture....
-- a similar program, independently developed, with an amazingly similar name! - Software testingSoftware testingSoftware testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...