18

What was the first operating system that supported preemptive multitasking?

By preemptive multitasking I mean that user processes were able to run in a time-sliced manner without special programming, not as loaded interrupt services, etc.

I've heard an opinion expressed that it was CTSS, but couldn't find any specific documentation to substantiate this.

Closely related, I would also be interested in the first operating system that implemented cooperative multitasking, where one process would execute only after another process yielded control.

4
  • Your description also fits the more primitive cooperative model of multitasking. Are you asking which OS had the first scheduler? Nov 5, 2019 at 18:44
  • @snips-n-snails, I would be interested in that as well. Updated question. Nov 5, 2019 at 19:07
  • 2
    Related: The history of context switch. Nov 5, 2019 at 19:27
  • 2
    @snips-n-snails "pre-emptive" in the description means tasks can be interrupted without their cooperation.
    – JeremyP
    Nov 6, 2019 at 8:07

1 Answer 1

13

In support of your CTSS suggestion, see this document, in particular page 11, which describes clock-trap handling.

A clock interrupt can cause a program swap, thus multiprogramming with preemption.

This does not itself prove that CTSS was first, but it is strong evidence.

For cooperative multiprogramming, the British were likely near the forefront. The 'master program' for the LEO 3 (1960) would suspend a program that had issued I/O, and run the next available. I do not know whether the first program would be resumed when the I/O completed. Later British systems, e.g. the KDF9 under the timesharing Director, would resume the highest priority program on end of I/O transfer.

The Electrologica X-1 was probably the first to demonstrate cooperative multiprogramming (switching on I/O requests) but since it was not part of an OS, I am not counting it for the purposes of this answer.

The Ferranti Orion's monitor program was, according to an article by George Felton, capable of pre-emptive multitasking by 1963, making it not the first, but one of the first.

6
  • Added a note about cooperative multiprogramming, since the question got widened in scope. Nov 5, 2019 at 19:25
  • You could be right - I'm not sure, they were virtually contemporaries. I think I have a dead-tree book on Leo somewhere. Nov 5, 2019 at 21:16
  • The writer is not entirely sure where the idea came from: either Stanley Gill brought back the idea to LEO from the US (!), or else the "germ of the idea" came from Manchester, presumably Atlas. But that doesn't say who was first to implement. The first Atlas was running in '62, as was the first in-service installation of LEO III. Wikipedia says this: The first computer using a multiprogramming system was the British Leo III. Nov 5, 2019 at 21:33
  • The Talk page of that same Wikipedia article gives priority to the Dutch: the Electrologica EL-X1. Nov 5, 2019 at 21:40
  • This 1959 article, based on a 1958 talk, describes multiprogramming with 2 programs based on interrupt-driven I/O. I think I'll have to update that part of my answer after I've read the whole X-1 paper. Nov 5, 2019 at 21:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .