Cooperative Scheduling

Cooperative scheduling is a style of scheduling in which the OS never interrupts a running process to initiate a context switch from one process to another. Processes must voluntarily yield control periodically or when logically blocked on a resource.

Preemptive Scheduling

Preemptive Scheduling is a multitasking strategy which permits the preemption of tasks. Preemption is the act of interrupting a task currently running on the CPU, usually to execute a higher-priority task, with the intention of resuming the interrupted task at a later time.