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.