Multitasking in computing allows a system to execute multiple tasks or programs concurrently over a period of time, rather than strictly simultaneously. This is achieved by rapidly "context switching" between tasks, saving the state of one and loading another, which enables them to share common processing resources like the CPU and main memory efficiently. A fundamental feature of operating systems since at least the 1960s, multitasking significantly improves hardware utilization by keeping the processor busy even when one program is awaiting external events like user input.
It encompasses types like pre-emptive (system-controlled interruptions) and cooperative (program-controlled interruptions) multitasking, and often includes features such as task prioritization and hardware memory protection. A foundational concept, multiprogramming, emerged to optimize CPU use when waiting for slow peripherals, exemplified by early computers like the Bull Gamma 60, designed in 1957 and released in 1960. This widespread ability is crucial for modern computing, from time-sharing systems to real-time industrial controls.