Input
output control systems
Monitors
The first
programs directly controlled all of the computer’s resources, including input
and output devices. Each individual program had to include code to control and
operate each and every input and/or output device used.
One of the
first consolidations was placing common input/output (I/O) routines into a
common library that could be shared by all programmers. I/O was separated from
processing.
These
first rudimentary operating systems were called an Input Output Control System
or IOCS.
Computers
remained single user devices, with main memory divided into an IOCS and a user
section. The user section consisted of program, data, and unused memory.
The user
remained responsible for both set up and tear down.
Set up
included loading data and program, by front panel switches, punched card,
magnetic tapes, paper tapes, disk packs, drum drives, and other early I/O and
storage devices. Paper might be loaded into printers, blank cards into card
punch mahcines, and blank or formatted tape into tape drives, or other output
devices readied.
Tear down
would include unmounting tapes, drives, and other media.
The very
expensive early computers sat idle during both set up and tear down.
This waste
led to the introduction of less expensive I/O computers. While one I/O computer
was being set up or torn down, another I/O computer could be communicating a
readied job with the main computer.
Some
installations might have several different I/O computers connected to a single
main computer to keep the expensive main computer in use. This led to the
concept of multiple I/O channels.
Monitors
As
computers spread from the research labs and military uses into the business
world, the accountants wanted to keep more accurate counts of time than mere
wall clock time.
This led
to the concept of the monitor. Routines were added to record the start
and end times of work using computer clock time. Routines were added to I/O
library to keep track of which devices were used and for how long.
With the
development of the Input Output Control System, these time keeping routines
were centralized.
You will
notice that the word monitor appears in the name of some operating systems,
such as FORTRAN Monitor System. Even decades later many programmers still refer
to the operating system as the monitor.
An
important motivation for the creation of a monitor was more accurate billing.
The monitor could keep track of actual use of I/O devices and record runtime
rather than clock time.
For
accurate time keeping the monitor had to keep track of when a program stopped
running, regardless of whether it was a normal end of the program or some kind
of abnormal termination (such as aa crash).
The
monitor reported the end of a program run or error conditions to a computer
operator, who could load the next job waiting, rerun a job, or take other
actions. The monitor also notified the computer operator of the need to load or
unload various I/O devices (such as changing tapes, loading paper into the
printer, etc.).