Multiprogramming
There is a huge difference in speed between I/O and running programs. In a single stream system, the processor remains idle for much of the time as it waits for the I/O device to be ready to send or receive the next piece of data.
System
calls
Time sharing
Mid
1960s
Late
1960s
Microprocessors
Early
1970s
There is a huge difference in speed between I/O and running programs. In a single stream system, the processor remains idle for much of the time as it waits for the I/O device to be ready to send or receive the next piece of data.
The
obvious solution was to load up multiple programs and their data and switch
back and forth between programs or jobs.
When one
job idled to wait for input or output, the operating system could automatically
switch to another job that was ready.
System
calls
The first
operating system to introduce system calls was University of Machester’s Atlas
I Supervisor.
Time sharing
The
operating system could have additional reasons to rotate through jobs,
including giving higher or lower priority to various jobs (and therefore a
larger or smaller share of time and other resources). The Compatible
Timesharing System (CTSS), first dmonstrated in 1961, was one of the first
attempts at timesharing.
While most
of the CTSS operating system was written in assembly language (all previous
OSes were written in assembly for efficiency), the scheduler was written in the
programming lanuage MAD in order to allow safe and reliable experimentation
with different scheduling algorithms. About half of the command programs for
CTSS were also written in MAD.
Timesharing
is a more advanced version of multiprogramming that gives many users the
illusion that they each have complete control of the computer to themselves.
The scheduler stops running programs based on a slice of time, moves on to the
next program, and eventually returns back to the beginning of the list of
programs. In little increments, each program gets their work done in a manner
that appears to be simultaneous to the end users.
Mid
1960s
Some
operating systems from the mid-1960s include: Atlas I Supervisor, DOS/360, Input
Output Selector, Master Control Program, and Multics.
The Atlas
I Supervisor introduced spooling, interrupts, and virtual memory paging (16
pages) in 1962. Segmentation was introduced on the Burroughs B5000. MIT’s
Multics combined paging and segmentation.
The
Compatible Timesharing System (CTSS) introduced email.
Late
1960s
Some
operating systems from the late-1960s include: BPS/360, CAL, CHIPPEWA, EXEC 3,
and EXEC 4, EXEC 8, GECOS III, George 1, George 2, George 3, George 4, IDASYS, MASTER,
Master Control Program, OS/MFT, OS/MFT-II, OS/MVT, OS/PCP, and RCA DOS.
Microprocessors
In 1968 a
group of scientists and engineers from Mitre Corporation (Bedford,
Massachusetts) created Viatron Computer company and an intelligent data
terminal using an 8-bit LSI microprocessor from PMOS technology. A year later
in 1969 Viatron created the 2140, the first 4-bit LSI microprocessor. At the
time MOS was used only for a small number of calculators and there simply
wasn’t enough worldwide manufacturing capacity to build these computers in
quantity.
Other
companies saw the benefit of MOS, starting with Intel’s 1971 release of the
4-bit 4004 as the first commercially available microprocessor. In 1972 Rockwell
released the PPS-4 microprocessor, Fairchild released the PPS-25
microprocessor, and Intel released the 8-bit 8008 microprocessor. In 1973
National released the IMP microprocessor.
In 1973
Intel released the faster NMOS 8080 8-bit microprocessor, the first in a long
series of microprocessors that led to the current Pentium.
In 1974
Motorola released the 6800, which included two accumulators, index registers,
and memory-mapped I/O. Monolithic Memories introduced bit-slice
microprocessing. In 1975 Texas Instruments introduced a 4-bit slice
microprocessor and Fairchild introduced the F-8 microprocessor.
Early
1970s
Some
operating systems from the early-1970s include: BKY, Chios, DOS/VS, Master
Control Program, OS/VS1, and UNIX.
In 1970
Ken Thompson of AT&T Bell Labs suggested the name “Unix” for the operating
system that had been under development since 1969. The name was an intentional
pun on AT&T’s earlier Multics project (uni- means “one”, multi-
means “many”).