A CDE Definition
A multitasking environment in which an application gives up control of the CPU to another application only at certain points, such as when it is ready to accept keyboard input. Under this method, one program performing a large number of calculations can dominate the machine and cause other programs to have limited access to the CPU. For example, if a communications program is running in the background and another application has usurped the CPU, the comm program cannot keep up with the incoming data.
Cooperation Is Necessary
Also called "cooperative multitasking," programs must be designed to yield to each other regularly in order to work effectively in this environment. Windows, prior to Windows 95, and the Mac, prior to Mac OS X, were non-preemptive multitasking operating systems. Contrast with 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.