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 NecessaryAlso 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.