1.2. History of Operating Systems

  • Earliest computers had no Operating System

    • Applications loaded manually
    • Users were experts on the hardware
  • First System Software was libraries of code to manage devices.

  • This grew to batch processing systems, where some focused on application programming and some on systems programming.

1.2.1. Batch Processing

A typical computer in the 1960s and 70s was a large machine. Its processing was managed by a human operator. The operator would organize various jobs from multiple users into batches.


Human operators would organize jobs into batches

1.2.2. Timesharing

A timesharing system allows multiple users to interact with a computer at the same time

Multiprogramming allowed multiple processes to be active at once, which gave rise to the ability for programmers to interact with the computer system directly, while still sharing its resources

In a timesharing system, each user has his or her own virtual machine, in which all system resources are (in effect) available for use

1.2.3. Fun Pictures


Remains of the first computer bug, a moth


The IBM 650 Magnetic Drum Data Processing System Machine


Cray I supercomputer, introduced in 1976

1.3. Current Operating Systems Research Topics

Symmetric multiprocessing

Allows for several CPUs to process multiple jobs at the same time. CPUs are independent of one another, but each has access to the operating system.

Asymmetric multiprocessing

Some operating systems functions are assigned to subordinate processors, which take their instructions from the main CPU.

distributed processing

Processors are placed at remote locations and are connected to each other via telecom devices. Different from symmetric multiprocessing systems as they do not share memory. Computations can be dispersed among several processors.