Preemptive Priority Scheduling Algorithm C Program

By | September 7, 2016

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

What is Preemptive Priority Scheduling Algorithm?

The preemptive priority scheduling algorithm is a popular operating system process management and job scheduling algorithm.

Every job that enters the job queue is assigned a priority based on which its execution takes place. As simple it sounds, the processes with a higher priority will be executed first and then the processes with the lower priorities will be executed.

If there are multiple processes in the queue with the same priority, then such jobs are executed in the order of their arrival often called as first come first served.

In this preemptive implementation of priority scheduling program in C, we consider the arrival time of the processes.

Since this is a preemptive job scheduling algorithm, the CPU can leave the process midway. The current state of the process will be saved by the context switch.

The system can then search for another process with a higher priority in the ready queue or waiting queue and start its execution.

Once the CPU comes back to the previous incomplete process, the job is resumed from where it was earlier paused.


  • Preemptive priority scheduling is much more efficient as compared to the non-preemptive version.
  • This priority job scheduling algorithm is quite simple to implement.
  • The aging technique is implemented to reduce the starvation of lower priority processes.
  • The average turnaround time and waiting time is efficient.


  • Indefinite blockage of the lower priority jobs.
  • For a system failure occurs, the unfinished lower priority jobs are removed from the system and cannot be recovered.

Note: This implementation of preemptive priority scheduling program in C with arrival time is compiled with GNU GCC compiler using Linux terminal on Linux Ubuntu operating system.

Preemptive Priority Scheduling Algorithm in C Programming


Preemptive Priority Scheduling Algorithm in C Programming using Structures, Arrival Time

If you have any doubts about the implementation of preemptive priority scheduling algorithm in C programming, let us know about it in the comment section. For more details, check CareerRide.

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

7 thoughts on “Preemptive Priority Scheduling Algorithm C Program

  1. Sanjay Shukla

    Can we use Arrays to write a code for Preemptive Priority Scheduling Algorithm?

  2. Raju Saigal

    Is this a preemptive priority algorithm or a non preemptive priority algorithm?

  3. Mridul Sharma

    The code is definitely not preemptive priority scheduling.This is because as soon as the B process with 1 priority came,the execution of process A will stop and process A has to wait for a time of 54 for B to complete.
    Your waiting time for A is 0 that is WRONG.

  4. Vineeth Daniel

    The Priority Scheduling algorithm is a apecial case of the Shortest Job First CPU scheduling algorithm.

  5. duresa

    that is nice !! but i want to implement multilevel priority packet scheduling in ns2 . but i didn’t get any hint to do it . is there any one who can send me the source code ??

  6. tarun

    nice but it should be better to provide gantt chart with the program in order to understand betterly

  7. navya

    what does process_queue[9].priority = -9999; mean?how does one know what is the highest priority


Let's Discuss