14

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.

3
  • Out of curiosity, why revise your expectation? Commented May 18, 2018 at 20:44
  • 2
    What do you mean by background processes (which is a form of multitasking specifically limited to interactive terminal users)? Commented May 18, 2018 at 21:37
  • 2
    This information is essential for writing an impactful feature request. I don’t think so. Commented May 19, 2018 at 11:56

1 Answer 1

29

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).

3
  • 1
    This answer is about multiple processes, not background processes. It seems to me that Burroughs were doing this in 1957. Commented May 18, 2018 at 21:56
  • @EJP the only Burroughs machine in existence in 1957 was the B205 (designed by ElectroData, which Burroughs bought), which didn’t have any notion of processes. Commented May 18, 2018 at 22:10
  • @EJP there, now I explicitly mention background processes (other than the backgrounded processes on the Atlas), is that better? Commented May 18, 2018 at 22:18

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.