Alan Freedman -- The Computer Language Company - Computer Desktop Encyclopedia
Computer Desktop Encyclopedia
Longest-Running Tech Reference on the Planet

A CDE Definition

You'll love The Computer Desktop Encyclopedia (CDE) for Tech Term of the Day (TTOD)


non-preemptive multitasking

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.

Personal Use Only

Before/After Your Search Term
non-linearnon-procedural code
non-linear video editingnon-procedural language
non-linear video editornon-repudiation
non-modalnon-routable protocol
non-numeric programmingNon-system disk error or disk error
non-paritynon-text file
non-parity memorynon-tracking browser
non-parity RAMnon trivial
non-PoE devicenon-volatile

Terms By Topic
Click any of the following categories for a list of fundamental terms.
Computer Words You Gotta KnowSystem design
Job categoriesUnix/Linux
Interesting stuffPersonal computers
InternetIndustrial Automation/Process Control
Communications & networkingAssociations/Standards organizations
HistoryDesktop publishing
ProgrammingHealthcare IT
System design