Preemptive Shortest Job First Algorithm C Program

By | September 7, 2016

Let us learn how to implement the preemptive shortest job first scheduling algorithm in C programming with its explanation, output, advantages, disadvantages and much more.

What is Preemptive Shortest Job Scheduling Algorithm?

According to the SJF algorithm, the jobs in the queue are compared with each other and the one with shortest burst time gets executed first.

The remaining processes are also executed in the order of their burst times. However, there may be scenarios where one or more processes have same execution time.

In such cases, the jobs are based on first come first serve basis or in other words, FIFO approach is used.

This is a preemptive algorithm which means that the CPU can leave a process while under execution, and can move to the next process in the queue.

Meanwhile, the current state of the process is saved by context switch and another job can be processed in the meantime.

Once the CPU scheduler comes back to the previous job which was incomplete, resumes it from where it was stopped.

The shortest job first algorithm is also popularly known by the following names:

  • Shortest Remaining Time First algorithm
  • Shortest Job Next algorithm
  • Shortest Process Next algorithm

Note: This SJF preemptive scheduling program in c with output considers the arrival time of the processes entering the job queue.


  • The response time is much better as compared to FCFS algorithm.
  • Minimum average waiting time is achieved.
  • The throughput time is good as the burst time of the processes is less.
  • Optimum turnaround time.


  • The execution time of all the jobs in the queue must be known in advance which is not possible in all the scenarios.
  • The processes with larger burst time will have a high waiting time, and this may lead to starvation.

Note: This preemptive shortest job first scheduling program in c language is compiled with GNU GCC compiler using Linux terminal on Linux Ubuntu operating system.

C Program For Preemptive Shortest Job Scheduling Algorithm


Preemptive Shortest Job First Scheduling Algorithm using Arrival Time and Array

If you have any doubts about the implementation of the preemptive shortest job first scheduling program in c language, let us know about it in the comment section. Find more about it on Wikipedia.

CPU Scheduling Algorithms
FCFS Disk Scheduling Algorithm
Round Robin Disk Scheduling Algorithm
Shortest Job First Disk Scheduling Algorithm
Multi-Level Feedback Queue Disk Scheduling Algorithm
Preemptive Priority Disk Scheduling Algorithm
Circular SCAN Scheduling Algorithm C Program
Priority Job Scheduling Algorithm
Shortest Seek Time First Disk Scheduling Algorithm
SCAN Disk Scheduling Algorithm C Program

7 thoughts on “Preemptive Shortest Job First Algorithm C Program

  1. Mukul Kulkarni

    Thank you so much. I was not able to find a working program for Preemptive SJF code anywhere.

  2. Rocky Sahoo

    Let there are 3 processes-1000,1001,1002
    Suppose at any point if two process have same burst time then it is broken by giving priority to the process with the lowest id no
    What will be the program for this?


Let's Discuss