Non-Preemptive

Allows a process to run to completion or until it blocks before another process is scheduled.

Preemptive

Allows the operating system to interrupt a currently executing process and move it to a ready state.