Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App

Related Articles

Comparison of Different CPU Scheduling Algorithms in OS

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

A scheduling algorithm is used to estimate the CPU time required to allocate to the processes and threads. The prime goal of any CPU scheduling algorithm is to keep the CPU as busy as possible for improving CPU utilization.

Scheduling Algorithms

1. First Come First Serve(FCFS): As the name implies that the jobs are executed on a first come first serve basis. It is a simple algorithm based on FIFO that’s first in first out. The process that comes first in the ready queue can access the CPU first. If the arrival time is less, then the process will get the CPU soon. It can suffer from the convoy effect if the burst time of the first process is the longest among all the jobs.

2. Shortest Job First (SJF): Also known as the shortest job first or shortest job next is a non-preemptive type algorithm that is easy to implement in batch systems and is best in minimizing the waiting time. It follows the strategies where the process that is having the lowest execution time is chosen for the next execution.

3. Longest Job First Scheduling(LJF): The longest job first (LJF) is the non-preemptive version. This algorithm is also based upon the burst time of the processes. The processes are put into the ready queue according to their burst times and the process with the largest burst time is processed first.

4. Longest Remaining Time First Scheduling (LRTF): The preemptive version of LJF is LRTF. Here the process with the maximum remaining CPU time will be considered first and then processed. And after some time interval, it will check if another process having more Burst Time arrived up to that time or not. If any other process has more remaining burst time, so the running process will get pre-empted by that process.   

5. Shortest Remaining Time First(SRTF): This algorithm is based on SJF and this is the preemptive version of SJF. In this scheduling algorithm, the process with the smallest remaining burst time is executed first and it may be preempted with a new job that has arrived with a shorter execution time.

6. Round Robin(RR): It is a preemptive scheduling algorithm in which each process is given a fixed time called quantum to execute. At this time one process is allowed to execute for a quantum and then preempts and then another process is executed. In this way, there is context switching between processes to save states of these preempted processes.

7. Priority Scheduling: It is a non-preemptive algorithm that works in batch systems and, each process is assigned with a priority and the process with the highest priority is executed first. This can lead to starvation for other processes.

8. Multiple Levels Queues Scheduling: In this scheduling, multiple queues have their scheduling Algorithms and are maintained with the processes that possess the same characteristics. For this, priorities are assigned to each queue for the jobs to be executed.

9. Multilevel-Feedback-Queue Scheduler: It defines several queues and the scheduling algorithms for each queue. This algorithm is used to determine when to upgrade a process when to demote a process, and also determine the queue in which a process will enter and when that process needs service.

Note: The SJF scheduling algorithm is hypothetical and un-implementable, as it is impossible to determine the burst time of any process without running it. SJF is a benchmarking algorithm as it provides minimum waiting time than any other scheduling algorithm

Comparative Analysis of Different CPU Scheduling Algorithms

Here is a brief comparison between different CPU scheduling algorithms:

AlgorithmAllocation is Complexity Average waiting time (AWT) Preemption Starvation Performance
FCFS According to the arrival time of the processes, the CPU is allocated. Not complex Large. No No Slow performance
SJF Based on the lowest CPU burst time  (BT). More complex than FCFS Smaller than FCFS No Yes Minimum Average Waiting Time
LJFS Based on the highest CPU burst time (BT)More complex than FCFSDepending on some measures e.g., arrival time, process size, etc. NoYes  Big turn-around time
LRTFSame as LJFS the allocation of the CPU is based on the highest CPU  burst time (BT). But it is preemptive  More complex than FCFS Depending on some measures e.g., arrival time, process size, etc. Yes Yes The preference is given to the longer jobs
SRTFSame as SJF the allocation of the CPU is based on the lowest CPU burst time (BT). But it is preemptive.More complex than FCFS   Depending on some measures e.g., arrival time, process size, etcYesYes The preference is given to the short jobs
RRAccording to the order of the process arrives with fixed time quantum  (TQ)  The complexity depends on TQ  size Large as compared to SJF and Priority scheduling. No No Each process has given a fairly fixed time
Priority Pre-emptive According to the priority. The bigger priority task executes first This type is less complex Smaller than FCFSYes  YesWell performance but contain a starvation problem
Priority non-preemptive According to the priority. with monitoring the new incoming higher  priority jobsThis type is less complex than Priority preemptivepreemptive Smaller than FCFS No Yes Most beneficial with batch systems
MLQ According to the process that resides in the bigger queue priority More complex than the priority scheduling algorithmsSmaller than FCFS  No Yes Good performance but contain a starvation problem
MFLQ According to the process of a bigger priority queue. It is the most Complex but its complexity rate depends on the TQ size Smaller than all scheduling types in many cases No No Good performance
My Personal Notes arrow_drop_up
Last Updated : 30 Nov, 2021
Like Article
Save Article
Similar Reads