HOME

TheInfoList



OR:

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