A CDE Definition
A multitasking method that shares processing time with all running programs. Preemptive multitasking creates a time-shared environment in which running programs receive a recurring slice of time from the CPU. Depending on the operating system, the time slice may be the same for all programs or it may be adjustable to meet the current mix of programs and users. For example, background programs can be given more CPU time no matter how heavy the foreground load and vice versa. In addition, the OS is able to grab the machine cycles that a modem or network program needs for uninterrupted processing.
Mainframe operating systems have employed preemptive multitasking for decades. Desktop operating systems began to utilize this architecture starting with Windows 95 and Mac OS X. Contrast with non-preemptive multitasking. See multitasking.
The running of two or more programs in one computer at the same time. The number of programs that can be effectively multitasked depends on the sophistication of the operating system, the speed of the CPU and the speeds and capacities of memory (RAM) and storage. See preemptive multitasking.
Input/Output Vs. Processing
Programs can run simultaneously in the computer because of the difference between I/O and processing speed. While one program is waiting for input, instructions in another can be executed. During the milliseconds one program waits for data to be read from storage, millions of instructions in another program can be executed. Thousands of instructions can be executed in one program between each keystroke in another program.
Channels and Multicore
In mainframe architectures, multiple I/O channels allow for simultaneous I/O operations to take place. Multiple streams of data, sometimes hundreds, are being read and written at the exact same time. In a multicore CPU, one program can be running in one core while another is multitasked in another core, and so on (see multicore).
Multitasking May Be Just Task Switching
Very often, people think multitasking is occurring when what is really taking place is "task switching." Multitasking implies simultaneous operation; for example, while the user interacts with the program on screen, a program in the background is processing data.
However, when several programs reside in memory (RAM) and do nothing but wait to be "front and center" again, the user is switching between programs (between apps, between tasks). See task switching.
A Note on Ancient Terminology
In the 1960s, the days of only mainframes, multitasking was called "multiprogramming," and multitasking meant "multithreading." See multithreading.
Before/After Your Search Term
Terms By Topic
Click any of the following categories for a list of fundamental terms.