When were background processes invented

background-processhistory

Looking for both a date and authoritative reference. Expected answer sometime in the 1960's.

This information is essential for writing an impactful feature request.

Best Answer

The first system to support multiple concurrently-executing processes, or at least to simulate the concurrent execution of multiple processes, was the Atlas system developed at Manchester University in the UK in the early sixties. The reference for that is the paper describing the system, The Atlas supervisor, written by Tom Kilburn, R. Bruce Payne, and David J. Howarth, and published in 1961 at the AFIPS Computer Conference:

An object program is halted (by S.E.R.'s) whenever access is required to a block of information not immediately available in the core store.

[...]

While one program is halted, awaiting completion of a magnetic tape transfer for instance, the co-ordinator routine switches control to the next program in the object program list which is free to proceed.

Processes waiting for data are suspended and placed in the background until the data is available.

You can find out more about the Atlas system and the history of operating systems in Per Brinch Hansen’s The Evolution of Operating Systems. His Classic Operating Systems book reprints quite a few pioneering papers, including the Atlas paper referenced above.

The concept of multi-programming, as described above, was first described by Christopher Strachey in his 1959 paper, Time sharing in large, fast computers.

What eventually became remembered as time-sharing wasn’t quite the same as the above; time-sharing, which might be more familiar to people used to modern multi-user, multi-tasking systems, was invented in 1959 by John McCarthy at MIT; see The Evolution of Operating Systems for references. The first system demonstrating time-sharing was CTSS, in late 1961 on an IBM 709, described in An experimental time-sharing system, written by Fernando Corbato, Marjorie Merwin-Daggett, and Robert C. Daley, published in 1962. CTSS already had daemons which might qualify as the earliest form of background processes (in the modern sense of that phrase).

See also The history of context switch on Retrocomputing, and John McCarthy’s own Reminiscences on the history of time sharing.

If you’re referring to background processes from a shell perspective, they appeared along with job control in the C shell, where Jim Kulp implemented it sometime around 1980 (the feature was available in 4BSD, released in late 1980).

Related Question