Khác nhau ở chỗ OS có được quyền cướp CPU khỏi tiến trình đang chạy hay không.
Non-preemptive (cooperative): một khi được cấp CPU, tiến trình giữ tới khi tự nguyện nhả — do kết thúc hoặc chuyển sang waiting (chờ I/O). Scheduler chỉ ra quyết định tại các thời điểm đó. Đơn giản, ít overhead, không lo tranh chấp dữ liệu chia sẻ giữa các lần chuyển; nhưng một tiến trình dài/lặp vô hạn có thể chiếm CPU, response time kém. Ví dụ: FCFS, SJF (bản non-preemptive).
Preemptive: OS có thể lấy lại CPU giữa chừng — khi hết time slice (timer interrupt) hoặc khi một tiến trình ưu tiên cao hơn sẵn sàng. Đáp ứng tốt, công bằng hơn, cần cho hệ thống tương tác/real-time; nhưng phát sinh chi phí context switch và cần cơ chế đồng bộ (lock) vì có thể bị ngắt giữa lúc đang sửa dữ liệu chia sẻ. Ví dụ: Round Robin, SRTF, priority preemptive. Đa số OS hiện đại (Linux, Windows) dùng preemptive.