What is the Difference Between Preemptive and Nonpreemptive Scheduling in OS?

🆚 Go to Comparative Table 🆚

Preemptive and non-preemptive scheduling are two types of process scheduling methods used in operating systems to allocate CPU resources to processes. The main differences between them are:

  1. Interruption: In preemptive scheduling, a running process can be interrupted by a high-priority process, allowing the high-priority process to execute first. In non-preemptive scheduling, a running process must complete its CPU cycle before being interrupted by another process.
  2. CPU Allocation: In preemptive scheduling, the CPU is allocated to processes for a specific time period, while in non-preemptive scheduling, the CPU is allocated to a process until it terminates or switches to the waiting state.
  3. Task Switching: In preemptive scheduling, tasks are switched based on priority, while in non-preemptive scheduling, no switching takes place.
  4. Overhead: Preemptive scheduling has the overhead of switching the process from the ready state to the running state and vice versa, while non-preemptive scheduling does not have this overhead.
  5. Waiting and Response Time: Preemptive scheduling has shorter waiting and response times compared to non-preemptive scheduling.
  6. Flexibility: Preemptive scheduling is more flexible, allowing the highest priority process to be executed, while non-preemptive scheduling is less flexible, as the running process must complete its CPU cycle before being interrupted.

In summary, preemptive scheduling is more robust and ensures that higher priority processes are executed first, while non-preemptive scheduling does not interrupt a running process until it completes its CPU cycle. The choice between preemptive and non-preemptive scheduling depends on the specific requirements of the system and the desired trade-offs in terms of response time, waiting time, and flexibility.

Comparative Table: Preemptive vs Nonpreemptive Scheduling in OS

Here is a table comparing the differences between preemptive and non-preemptive scheduling in operating systems:

Feature Preemptive Scheduling Non-Preemptive Scheduling
CPU Allocation CPU is allocated to processes for a specific time period CPU is allocated to the process until it terminates or switches to the waiting state
Process Switching Process can be interrupted in the midst of its execution Process cannot be interrupted in the middle of execution
Priority Tasks are switched based on priority No switching takes place
Overhead Preemptive scheduling has the overhead of switching the process from the ready state to the running state Non-preemptive scheduling has no such overhead
Examples Round Robin (RR), Shortest Remaining Time First (SRTF), Priority (preemptive version) Priority (non-preemptive version), First Come First Served (FCFS)

In summary, preemptive scheduling allocates the CPU to processes for a specific time period and allows for tasks to be switched based on priority. In contrast, non-preemptive scheduling allocates the CPU to a process until it terminates or switches to the waiting state, with no switching taking place during execution. Preemptive scheduling has the overhead of switching the process from the ready state to the running state, while non-preemptive scheduling does not have this overhead.