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.
2 pages link to CooperativeMultitasking: