In CooperativeMultitasking, a task can keep the CPU to itself as long as it wants. The Kernel can only switch tasks if the currently running task makes a system call or calls a yield function (which technically is a system call).

The major drawback of this is that a misbehaving application (either maliciously or just badly-coded) can prevent other applications from running.

Used by MicrosoftWindows prior to Win32 and MacOS Classic.

Contrast PreemptiveMultitasking.