Preemption in Computing: Understanding Preemptive Multitasking


preemption represented with threads

In computing, preemption is the act of temporarily interrupting an executing task, with the intention of resuming it at a later time.

The term preemptive multitasking is used to distinguish a multitasking operating system, which permits the preemption of tasks, from a cooperative multitasking system wherein processes or tasks must be explicitly programmed to yield when they do not need system resources.

In simple terms: Preemptive multitasking involves the use of an interrupt mechanism that suspends the currently executing process and invokes a scheduler to determine which process should execute next.

  • In preemptive multitasking, the operating system kernel can also initiate a context switch to satisfy the scheduling policy’s priority constraint, thus preempting the active task.

In general, preemption means “prior seizure of”. When the high-priority task at that instance seizes the currently running task, it is known as preemptive scheduling.

Today, nearly all operating systems support preemptive multitasking, including the current versions of Windows, macOS, Linux (including Android), and iOS.

References

[1] Wikipedia Contributors, “Preemption (computing),” Wikipedia, Aug. 30, 2022. https://en.wikipedia.org/wiki/Preemption_(computing) (accessed Sep. 04, 2022).