Scheduling and its types

Filter Course


Scheduling and its types

Published by: Zaya

Published date: 22 Jun 2021

Scheduling and its types Photo

Scheduling and its types

Scheduling

Scheduling is the method by which a task specified by some means is assigned to resources that complete the task. Process scheduling is the activity of the process manager that handles the removal of the running process from the CPU and the selection of another process on the basis of a particular strategy. Process scheduling is an essential part of Multi-programming operating systems. Such operating systems allow more than one process to be loaded into the executable memory at a time and the loaded process shares the CPU using time multiplexing.

Objective and criteria of process scheduling

  • Max CPU utilization [Keep CPU as busy as possible]
  • Fair allocation of CPU.
  • Max throughput [Number of processes that complete their execution per time unit]
  • Min turnaround time [Time taken by a process to finish execution]
  • Min waiting time [Time a process waits in ready queue]
  • Min response time [Time when a process produces first response]

Types of Scheduling:

1. Preemptive Scheduling:

Preemptive scheduling is used when a process switches from running state to ready state or from waiting for state to ready state. The resources (mainly CPU cycles) are allocated to the process for a limited amount of time and then are taken away, and the process is again placed back in the ready queue if that process still has CPU burst time remaining. That process stays in the ready queue till it gets its next chance to execute.

Algorithms based on preemptive scheduling are Round Robin (RR), Shortest Job First ( SJF basically non-preemptive), and Priority (non-preemptive version), etc.

preemptive scheduling

2. Non-Preemptive Scheduling:

Non-preemptive Scheduling is used when a process terminates, or a process switches from running to waiting for state. In this scheduling, once the resources (CPU cycles) are allocated to a process, the process holds the CPU till it gets terminated or reaches a waiting state. In the case of non-preemptive scheduling does not interrupt a process running CPU in the middle of the execution. Instead, it waits till the process completes its CPU burst time, and then it can allocate the CPU to another process.

Algorithms based on preemptive scheduling are Shortest Remaining Time First (SRTF), Priority (preemptive version), etc.

Non preemptive scheduling

Key Differences Between Preemptive and Non-Preemptive Scheduling:

  1. In preemptive scheduling, the CPU is allocated to the processes for a limited time whereas, in Non-preemptive scheduling, the CPU is allocated to the process till it terminates or switches to waiting for state.
  2. The executing process in preemptive scheduling is interrupted in the middle of execution when higher priority one comes whereas, the executing process in non-preemptive scheduling is not interrupted in the middle of execution and waits till its execution.
  3. In Preemptive Scheduling, there is the overhead of switching the process from the ready state to running state, vise-verse and maintaining the ready queue. Whereas in the case of non-preemptive scheduling has no overhead of switching the process from running state to ready state.
  4. In preemptive scheduling, if a high-priority process frequently arrives in the ready queue then the process with low priority has to wait for a long, and it may have to starve. On the other hand, in the non-preemptive scheduling, if CPU is allocated to the process having a larger burst time then the processes with small burst time may have to starve.
  5. Preemptive scheduling attains flexibility by allowing the critical processes to access the CPU as they arrive into the ready queue, no matter what process is executing currently. Non-preemptive scheduling is called rigid as even if a critical process enters the ready queue the process running CPU is not disturbed.
  6. Preemptive Scheduling has to maintain the integrity of shared data that’s why it is cost associative it which is not the case with Non-preemptive Scheduling.

Comparison of preemptive and Non-preemptive scheduling:

Basic In this resources(CPU Cycle) are allocated to a process for a limited time. Once resources(CPU Cycle) are allocated to a process, the process holds it till it completes its burst time or switches to waiting for the state.
Interrupt The process can be interrupted in between. The process can not be interrupted until it terminates itself or its time is up.
Starvation If a process having high priority frequently arrives in the ready queue, a low priority process may starve. If a process with a long burst time is running CPU, then later coming process with less CPU burst time may starve.
Overhead It has overheads of scheduling the processes. It does not have overheads.
Flexibility flexible rigid
Cost cost associated no cost associated
CPU Utilization In preemptive scheduling, CPU utilization is high. It is low in non-preemptive scheduling.
Examples Examples of preemptive scheduling are Round Robin and Shortest Remaining Time First. Examples of non-preemptive scheduling are First Come First Serve and Shortest Job First.