×

Priority Scheduling in OS

Priority Scheduling is a type of CPU Scheduling algorithm which is used for process scheduling. In Priority Scheduling, we assign some priorities to each process. The process which has higher priority among all the processes is assigned with the CPU first.

The priority scheduling is of two types:

  1. Preemptive Priority Scheduling.
  2. Non-Preemptive Priority Scheduling.

The priority number, which is assigned to each process, can be different. If the number of priorities which is assigned to each process does not change itself, then such type of priority is known as static priority.

But if the number of priorities is changing itself, then this type of priority is known as Dynamic priority.

Advantages of Priority Scheduling

The advantages of Priority Scheduling are:

  1. Priority scheduling is simple to understand.
  2. Priority scheduling is a user-friendly algorithm.
  3. Based on priority, processes are executed. So, the process which has the highest priority does not need to wait for more time
  4. Priorities in the Priority scheduling are chosen on the basis of time requirements, memory requirements, and user preferences.

Disadvantages of Priority Scheduling

The disadvantages of Priority Scheduling are:

  1. When the multiple processes have the same priorities, then we have to apply another scheduling algorithm.
  2. In priority scheduling, if the system is crashed, then all low-priority processes that are not yet completed will also get lost.
  3. Another disadvantage of Priority Scheduling is starvation. The problem of starvation is a situation that arises when a process does not get the required resources like CPU because another process is holding the resources, and it waits for a long time for the CPU. ‘Aging’ is a technique that is used to remove the problem of starvation. In aging, the system automatically increases the priorities of the processes, waiting for a long time to complete its execution.

Non-Preemptive Priority Scheduling

In this, the processes are scheduled on the priority basis. Each process is assigned a priority. If the process is scheduled, then it will not leave the CPU until it completes the execution.

In Non-Preemptive Priority Scheduling, the process which has the highest priority is scheduled first, and if the processes have the same priority number, then it will be executed according to the First-Come-First-Serve manner. Priorities are assigned based on the resource requirements, time requirements, and Memory requirements.

Example of Non-Preemptive Priority Scheduling

In the following example, we have 7 processes with process ID P1, P2, P3, P4, P5, P6, and P7. The arrival time and burst time of the processes are given in the following table:

Process ID Priority Arrival Time Burst Time Completion time Turnaround time Waiting time Response time
P1 1 0 4 4 4 0 0
P2 5 3 6 23 20 14 17
P3 2 2 5 9 7 2 4
P4 4 5 3 17 12 9 14
P5 6 7 10 33 26 16 23
P6 3 6 5 14 8 3 9
P7 9 8 11 44 36 25 33

The waiting time and turnaround time are calculated with the help of the following formula:

         Waiting Time = Turnaround time – Burst Time

          Turnaround Time = Completion time – Arrival time 

Process waiting time

P1=4-4=0

P2=20-3=17

P3=7-5=2

P4=12-3=9

P5=26-10=16

P6=8-5=3

P7=36-11=25

Average Waiting Time= 0+17+2+9+16+3+25/7

                                        =72/7

                                        =10.28

Process Turnaround Time

P1=4-0=4

P2=23-3=20

P3=9-2=7

P4=17-5=12

P5=33-7=26

P6=14-6=8

P7=44-8=36

Average Turnaround Time= 4+20+7+12+26+8+36/7

                                              =113/7

                                               = 16.14

Priority Scheduling in OS

Preemptive Priority Scheduling

Preemptive Priority Scheduling is a scheduling algorithm that is used when a process enters the ready queue first. We compare the priority of the process with other processes, present in the ready queue and, which the CPU is executing at that point of time. The process which has the highest priority among all other processes will be assigned with the CPU first.

In preemptive priority scheduling, if a new process enters into the ready queue, having a higher priority than the currently running process. In such a case, the CPU is preempted to the newly arrived process, i.e., the current process processing gets stopped, and the new incoming process begins its execution.

Example of Preemptive Priority Scheduling

In the following example, we have 4 processes with process ID P1, P2, P3, and P4. The arrival time and burst time of the processes are given in the following table. (In this example, we assume that higher the number, higher the priority).

Process ID Priority Arrival Time Burst Time Completion Time Turnaround Time Waiting Time
P1 11 0 5 12 12 7
P2 22 1 4 8 7 3
P3 33 2 2 4 2 0
P4 44 4 1 5 1 0

The waiting time and turnaround time are calculated with the help of the following formula.

         Waiting Time = Turnaround time – Burst Time

          Turnaround Time = Completion time – Arrival time 

Priority Scheduling in OS

At time 0, the process P1 arrived with burst time 5 and started its execution. But when the process P2 came with the priority higher than the P1 process. So, process P1 got preempted with P2. P2 began its execution then. This process continued until all the process finished their execution. In preemptive priority scheduling, CPU executes the process only for a single interval of time so that the higher priority process can never skip.

Process Turnaround Time

P1=12-0=12

P2=8-1=7

P3=4-2=2

P4=5-4=1

Average Turnaround Time= 12+7+2+1/4

                                               =22/4

                                               =5.5

Process Waiting Time

P1=12-5=7

P2=7-4=3

P3=2-2=0

P4=1-1=0

Average Waiting Time=7+3+0+0/4

                                       =10/4

                                        =2.5


Related Topics

Operating System Services

The Operating System provides various types of services:   I/O operationProgram executionFile system manipulationCommunicationError HandlingResource allocationAccountingProtection 1. I/O Operation: - To execute a program, needs I/O, which consists of a file, or I/O device. Due to the protection...

3 minutes read.

Process Schedulers and Process Queue in OS

Process Schedulers There are various types of Process Schedulers: Long Term SchedulerShort Term SchedulerMedium Term Scheduler                                            Long Term Scheduler: - Long term scheduler is also referred to as Job Scheduler. The task of the Long-term...

3 minutes read.

Difference between SSTF and LOOK Disk Scheduling Algorithm

Shortest Seek Time First / SSTF Shortest Seek Time First (SSTF) is an acronym for "shortest seek time first." The task request that is closest to the present position of the...

4 minutes read.

MS-DOS Operating System

It is also referred to occasionally as "DOS", an abbreviation for disc operating systems. Operating systems with a graphical user interface (GUI) in different iterations of the graphical Microsoft Windows...

5 minutes read.

Page Table in Operating System

What is a Page Table? A page table is a data structure used by an operating system (OS) to store information about the physical location of the pages in a computer's...

6 minutes read.

Look Disk Scheduling

Look Disk Scheduling Look disk scheduling is another type of disk scheduling algorithm. Look scheduling is an enhanced version of SCAN disk scheduling. Look disk scheduling is the same as SCAN disk scheduling,...

4 minutes read.

File Allocation Methods in Operating System

A file allocation method is a way that an operating system stores and retrieves files on a storage device, such as a hard drive or SSD. The file allocation method...

4 minutes read.

Difference between Seek Time and Disk Access Time in Disk Scheduling

Seek Time The time taken for the hard disk controller to detect a specific piece of recorded data is known as the seek time. The amount of time it takes to...

4 minutes read.

Deadlock Detection and Recovery

Deadlock Detection and Recovery In deadlock detection and recovery, to avoid or prevent a deadlock, the operating system uses various methods. For checking deadlock, an operating system continuously monitors the system. Then also,...

2 minutes read.

Priority Scheduling in OS

Priority Scheduling is a type of CPU Scheduling algorithm which is used for process scheduling. In Priority Scheduling, we assign some priorities to each process. The process which has higher priority among all...

5 minutes read.

Virtual Memory in Operating System

What is Virtual Memory Virtual Memory is a storage scheme in which the users have an illusion that users have a significant amount of Main Memory. We can perform this by taking a...

3 minutes read.

Ubuntu Operating System

Ubuntu Operating System Ubuntu is an open-source and a Linux based operating system. Ubuntu is developed for the Network Servers, Computers, and Smartphones. The Ubuntu operating system was developed by Canonical...

3 minutes read.

Simple Structure in Operating System

An operating system is a piece of software that lets the user applications talk to the hardware of the system. Because it is such a complicated structure, the operating system...

3 minutes read.

Deadlock Prevention in Operating System

Deadlock Prevention The conditions which we used for deadlock prevention are: Mutual ExclusionHold and WaitNo PreemptionCircular Wait 1. Mutual Exclusion: - From the resource point of view, the mutual exclusion means that simultaneously more...

4 minutes read.

FCFS (First-Come-First-Serve) Disk Scheduling Algorithm

FCFS Disk Scheduling Algorithm FCFS (First-Come-First-Serve) is the easiest disk scheduling algorithm among all the scheduling algorithms. In the FCFS disk scheduling algorithm, each input/output request is served in the order...

4 minutes read.

Partitioning Algorithms

Partitioning Algorithms There are various types of Partitioning Algorithm: First-Fit AlgorithmNext-Fit AlgorithmBest-Fit AlgorithmWorst-Fit AlgorithmQuick-Fit Algorithm 1. First-Fit Algorithm: - In the First-Fit Partitioning algorithm, first, the linked list is scan, and when it...

3 minutes read.

Advantages of UNIX Operating System

What is UNIX OS? UNIX is a family of multitasking, multiuser operating systems that are used on a wide variety of computer platforms. It was developed in the late 1960s and...

4 minutes read.

What is Scheduling on OS

Scheduling is the process which is used to share the computing resources such as memory, processor time, and bandwidth to the different processes, data flows, threads, and applications which need them. Scheduling is...

5 minutes read.

FCFS Scheduling in OS

FCFS: First Come First Serve Scheduling in OS FCFS is a non-preemptive and preemptive scheduling algorithm that is easy to understand and use. In this, the process which reaches first is...

3 minutes read.

Components of Operating System

Components of Operating System: An operating system is a complex and vast system. We can only create the operating system by dividing it into small parts. Each part must be...

5 minutes read.