Cooperative multitasking, also known as
non-preemptive multitasking, is a style of
computer multitasking in which the
operating system never initiates a
context switch from a running
process to another process. Instead, processes voluntarily release control periodically or when idle in order to enable multiple applications to be run simultaneously. This type of multitasking is called "cooperative" because all programs must cooperate for the entire scheduling scheme to work. In this scheme, the
process scheduler of an operating system is known as a
cooperative scheduler, having its role reduced down to starting the processes and letting them return control back to it voluntarily.