SIMMON (
SIMulation
MONitor) was a
proprietary software testing
Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to apprecia ...
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
The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover both commercial and scientific applic ...
computers as a vehicle for testing the software that IBM was developing for that
architecture
Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and constructing buildings ...
.
SIMMON was first described at the IBM ''SimSymp 1968'' symposium, held at Rye, New York.
[Lehman MM (ed) ''Proc. SimSymp 1968'', IBM Res. Div., Yorktown Heights, NY; Nov. 1968, 3 vols.]
SIMMON was a
hypervisor
A hypervisor (also known as a virtual machine monitor, VMM, or virtualizer) is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called ...
, similar to the
IBM CP-40
CP-40 was a research precursor to CP-67, which in turn was part of IBM's then-revolutionary CP 67CMS – 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 ...
system that was being independently developed at the
Cambridge Scientific Center The IBM Cambridge Scientific Center was a company research laboratory established in February 1964 in Cambridge, Massachusetts. Situated at 545 Technology Square (''Tech Square''), in the same building as MIT's Project MAC, it was later renamed ...
at about that same time. The chief difference from CP-40 was that SIMMON supported a single
virtual machine
In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized har ...
for testing of a single
guest program running there. CP-40 supported many virtual machines for
time-sharing
In computing, time-sharing is the sharing of a computing resource among many users at the same time by means of multiprogramming and multi-tasking.DEC Timesharing (1965), by Peter Clark, The DEC Professional, Volume 1, Number 1
Its emergence ...
production work. CP-40 evolved by many stages into the present
VM/CMS
VM (often: VM/CMS) is 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 following versions ...
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
Kernel may refer to:
Computing
* Kernel (operating system), the central component of most operating systems
* Kernel (image processing), a matrix used for image convolution
* Compute kernel, in GPGPU programming
* Kernel method, in machine lea ...
maintained control over the hardware (and the guest) and coordinated invocation of the test tools.
Processing modes
Two modes of operation were provided:
# Full simulation
# Interrupt
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 Simulator
An instruction set simulator (ISS) 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 ...
, 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
The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover both commercial and scientific applic ...
/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
Kernel may refer to:
Computing
* Kernel (operating system), the central component of most operating systems
* Kernel (image processing), a matrix used for image convolution
* Compute kernel, in GPGPU programming
* Kernel method, in machine lea ...
handling all hardware
interrupt
In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
s and simulating all privileged instructions the guest attempted to execute. This mode could be used, for example, by a test tool to simulate a hardware device.
Some SIMMON test tools
These were some test tools that were developed for use with SIMMON.
ERGENT
(
ERror
GENeration and
Test):
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
Decision tables are a concise visual representation for specifying which actions to perform depending on given conditions. They are algorithms whose output is a set of actions. The information expressed in decision tables could also be represented ...
finite state machine
A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
(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
A patent is a type of intellectual property that gives its owner the legal right to exclude others from making, using, or selling an invention for a limited period of time in exchange for publishing an sufficiency of disclosure, enabling disclo ...
in October, 1972.
MAPPER
MAPPER (not to be confused with the Unisys product of the same name) was a
statistical
Statistics (from German: '' Statistik'', "description of a state, a country") is the discipline that concerns the collection, organization, analysis, interpretation, and presentation of data. In applying statistics to a scientific, industr ...
performance analysis 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 or nucleology is a medical specialty involving the application of radioactive substances in the diagnosis and treatment of disease. Nuclear imaging, in a sense, is "radiology done inside out" because it records radiation emitting ...
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 trace
A branch, sometimes called a ramus in botany, is a woody structural member connected to the central trunk of a tree (or sometimes a shrub). Large branches are known as boughs and small branches are known as twigs. The term ''twig'' usually ...
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
Memory management is a form of resource management applied to computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and free it for reuse when ...
component as consuming about 20% of CPU resources, and was used to justify a
task force 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/output
In computing, input/output (I/O, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, possibly a human or another information processing system. Inputs are the signals ...
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 for the guest.
These were some of the programs that had been tested using SIMMON:
* Various
Customer Engineer (CE)
stand-alone diagnostic program
A diagnostic program (also known as a Test Mode) is an automatic computer program sequence that determines the operational status within the software, hardware, or any combination thereof in a component, a system, or a network of systems. Diagn ...
s
*
DOS/360
Disk Operating System/360, also DOS/360, or simply DOS, is the discontinued first member of a sequence of operating systems for IBM System/360, System/370 and later mainframes. It was announced by IBM on the last day of 1964, and it was first de ...
(including BOS and TOS)
*
OS/360
OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB ...
(PCP. MFT and MVS)
* A number of Product Test tools
See also
*
Software testing
Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to apprecia ...
References
{{Virtualization products
Debuggers
Software testing tools
1960s software
Operating system kernels
IBM mainframe software