Open In App

CPU Scheduling in Operating Systems

Scheduling of processes/work is done to finish the work on time. CPU Scheduling is a process that allows one process to use the CPU while another process is delayed (in standby) due to unavailability of any resources such as I / O etc, thus making full use of the CPU. The purpose of CPU Scheduling is to make the system more efficient, faster, and fairer.

Tutorial on CPU Scheduling Algorithms in Operating System

Whenever the CPU becomes idle, the operating system must select one of the processes in the line ready for launch. The selection process is done by a temporary (CPU) scheduler. The Scheduler selects between memory processes ready to launch and assigns the CPU to one of them.



Table of Contents

What is a process?

In computing, a process is the instance of a computer program that is being executed by one or many threads. It contains the program code and its activity. Depending on the operating system (OS), a process may be made up of multiple threads of execution that execute instructions concurrently.



How is process memory used for efficient operation?

The process memory is divided into four sections for efficient operation:

To know further, you can refer to our detailed article on States of a Process in Operating system.

What is Process Scheduling?

Process Scheduling is the process of the process manager handling the removal of an active process from the CPU and selecting another process based on a specific strategy.

Process Scheduling is an integral part of Multi-programming applications. Such operating systems allow more than one process to be loaded into usable memory at a time and the loaded shared CPU process uses repetition time.

There are three types of process schedulers:

Why do we need to schedule processes?

What is the need for CPU scheduling algorithm?

CPU scheduling is the process of deciding which process will own the CPU to use while another process is suspended. The main function of the CPU scheduling is to ensure that whenever the CPU remains idle, the OS has at least selected one of the processes available in the ready-to-use line.

In Multiprogramming, if the long-term scheduler selects multiple I / O binding processes then most of the time, the CPU remains an idle. The function of an effective program is to improve resource utilization.

If most operating systems change their status from performance to waiting then there may always be a chance of failure in the system. So in order to minimize this excess, the OS needs to schedule tasks in order to make full use of the CPU and avoid the possibility of deadlock.

Objectives of Process Scheduling Algorithm:

What are the different terminologies to take care of in any CPU Scheduling algorithm?

Turn Around Time = Completion Time  –  Arrival Time

Waiting Time = Turn Around Time  –  Burst Time

Things to take care while designing a CPU Scheduling algorithm?

Different CPU Scheduling algorithms have different structures and the choice of a particular algorithm depends on a variety of factors. Many conditions have been raised to compare CPU scheduling algorithms.

The criteria include the following: 

What are the different types of CPU Scheduling Algorithms?

There are mainly two types of scheduling methods:

Different types of CPU Scheduling Algorithms

Let us now learn about these CPU scheduling algorithms in operating systems one by one:

1. First Come First Serve: 

FCFS considered to be the simplest of all operating system scheduling algorithms. First come first serve scheduling algorithm states that the process that requests the CPU first is allocated the CPU first and is implemented by using FIFO queue.

Characteristics of FCFS:

Advantages of FCFS:

Disadvantages of FCFS:

To learn about how to implement this CPU scheduling algorithm, please refer to our detailed article on First come, First serve Scheduling.

2. Shortest Job First(SJF):

Shortest job first (SJF) is a scheduling process that selects the waiting process with the smallest execution time to execute next. This scheduling method may or may not be preemptive. Significantly reduces the average waiting time for other processes waiting to be executed. The full form of SJF is Shortest Job First.

Characteristics of SJF:

Advantages of Shortest Job first:

Disadvantages of SJF:

To learn about how to implement this CPU scheduling algorithm, please refer to our detailed article on Shortest Job First.

3. Longest Job First(LJF):

Longest Job First(LJF) scheduling process is just opposite of shortest job first (SJF), as the name suggests this algorithm is based upon the fact that the process with the largest burst time is processed first. Longest Job First is non-preemptive in nature.

Characteristics of LJF:

Advantages of LJF:

Disadvantages of LJF:

To learn about how to implement this CPU scheduling algorithm, please refer to our detailed article on the Longest job first scheduling.

4. Priority Scheduling:

Preemptive Priority CPU Scheduling Algorithm is a pre-emptive method of CPU scheduling algorithm that works based on the priority of a process. In this algorithm, the editor sets the functions to be as important, meaning that the most important process must be done first. In the case of any conflict, that is, where there is more than one process with equal value, then the most important CPU planning algorithm works on the basis of the FCFS (First Come First Serve) algorithm.

Characteristics of Priority Scheduling:

Advantages of Priority Scheduling:

Disadvantages of Priority Scheduling:

To learn about how to implement this CPU scheduling algorithm, please refer to our detailed article on Priority Preemptive Scheduling algorithm.

5. Round robin:

Round Robin is a CPU scheduling algorithm where each process is cyclically assigned a fixed time slot. It is the preemptive version of First come First Serve CPU Scheduling algorithm. Round Robin CPU Algorithm generally focuses on Time Sharing technique. 

Characteristics of Round robin:

Advantages of Round robin:

To learn about how to implement this CPU scheduling algorithm, please refer to our detailed article on the Round robin Scheduling algorithm.

6. Shortest Remaining Time First:

Shortest remaining time first is the preemptive version of the Shortest job first which we have discussed earlier where the processor is allocated to the job closest to completion. In SRTF the process with the smallest amount of time remaining until completion is selected to execute.

Characteristics of Shortest remaining time first:

Advantages of SRTF:

Disadvantages of SRTF:

To learn about how to implement this CPU scheduling algorithm, please refer to our detailed article on the shortest remaining time first.

7. Longest Remaining Time First:

The longest remaining time first is a preemptive version of the longest job first scheduling algorithm. This scheduling algorithm is used by the operating system to program incoming processes for use in a systematic way. This algorithm schedules those processes first which have the longest processing time remaining for completion.

Characteristics of longest remaining time first:

Disadvantages of LRTF:

To learn about how to implement this CPU scheduling algorithm, please refer to our detailed article on the longest remaining time first.

8. Highest Response Ratio Next:

Highest Response Ratio Next is a non-preemptive CPU Scheduling algorithm and it is considered as one of the most optimal scheduling algorithms. The name itself states that we need to find the response ratio of all available processes and select the one with the highest Response Ratio. A process once selected will run till completion. 

Characteristics of Highest Response Ratio Next:

 Response Ratio = (W + S)/S

Here, W is the waiting time of the process so far and S is the Burst time of the process.

Advantages of HRRN:

Disadvantages of HRRN:

To learn about how to implement this CPU scheduling algorithm, please refer to our detailed article on Highest Response Ratio Next.

9. Multiple Queue Scheduling:

Processes in the ready queue can be divided into different classes where each class has its own scheduling needs. For example, a common division is a foreground (interactive) process and a background (batch) process. These two classes have different scheduling needs. For this kind of situation Multilevel Queue Scheduling is used. 

The description of the processes in the above diagram is as follows:

Advantages of multilevel queue scheduling:

Disadvantages of multilevel queue scheduling:

To learn about how to implement this CPU scheduling algorithm, please refer to our detailed article on Multilevel Queue Scheduling.

10. Multilevel Feedback Queue Scheduling::

Multilevel Feedback Queue Scheduling (MLFQ) CPU Scheduling is like  Multilevel Queue Scheduling but in this process can move between the queues. And thus, much more efficient than multilevel queue scheduling. 

Characteristics of Multilevel Feedback Queue Scheduling:

Advantages of Multilevel feedback queue scheduling:

Disadvantages of Multilevel feedback queue scheduling:

To learn about how to implement this CPU scheduling algorithm, please refer to our detailed article on Multilevel Feedback Queue Scheduling.

Comparison between various CPU Scheduling algorithms

Here is a brief comparison between different CPU scheduling algorithms:

Algorithm           Allocation is  Complexity  Average waiting time (AWT)  Preemption  Starvation  Performance
FCFS According to the arrival time of the processes, the CPU is allocated.  Simple and easy to implement  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 FCFS Depending on some measures e.g., arrival time, process size, etc. 

No

Yes

  Big turn-around time

LRTF Same 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

SRTF Same 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, etc

Yes

Yes

 The preference is given to the short jobs

RR According to the order of the process arrives with fixed time quantum (TQ)  The complexity depends on Time Quantum size Large as compared to SJF and Priority scheduling.

 Yes 

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 FCFS

Yes

  Yes

Well performance but contain a starvation problem

Priority non-preemptive  According to the priority with monitoring the new incoming higher priority jobs This type is less complex than Priority preemptive Preemptive 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 algorithms Smaller 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

Exercise:

  1. Consider a system which requires 40-time units of burst time. The Multilevel feedback queue scheduling is used and time quantum is 2 unit for the top queue and is incremented by 5 unit at each level, then in what queue the process will terminate the execution?  
  2. Which of the following is false about SJF? S1: It causes minimum average waiting time S2: It can cause starvation (A) Only S1 (B) Only S2 (C) Both S1 and S2 (D) Neither S1 nor S2 Answer (D) S1 is true SJF will always give minimum average waiting time. S2 is true SJF can cause starvation.  
  3. Consider the following table of arrival time and burst time for three processes P0, P1 and P2. (GATE-CS-2011)
     
Process Arrival time Burst Time
P0 0 ms  9 ms
P1 1 ms 4 ms
P2 2 ms 9 ms
  1. The pre-emptive shortest job first scheduling algorithm is used. Scheduling is carried out only at arrival or completion of processes. What is the average waiting time for the three processes? (A) 5.0 ms (B) 4.33 ms (C) 6.33 (D) 7.33 Solution : Answer: – (A) Process P0 is allocated processor at 0 ms as there is no other process in the ready queue. P0 is preempted after 1 ms as P1 arrives at 1 ms and burst time for P1 is less than remaining time of P0. P1 runs for 4ms. P2 arrived at 2 ms but P1 continued as burst time of P2 is longer than P1. After P1 completes, P0 is scheduled again as the remaining time for P0 is less than the burst time of P2. P0 waits for 4 ms, P1 waits for 0 ms and P2 waits for 11 ms. So average waiting time is (0+4+11)/3 = 5.  
  2. Consider the following set of processes, with the arrival times and the CPU-burst times given in milliseconds (GATE-CS-2004)
     
Process Arrival time Burst Time
P1 0 ms  5 ms
P2 1 ms 3 ms
P3 2 ms 3 ms
P4 4 ms 1 ms
  1. What is the average turnaround time for these processes with the preemptive shortest remaining processing time first (SRPT) algorithm ? (A) 5.50 (B) 5.75 (C) 6.00 (D) 6.25 Answer (A) Solution: The following is Gantt Chart of execution
     
P1 P2 P4 P3 P1
1 4 5 8 12
  1. Turn Around Time = Completion Time – Arrival Time Avg Turn Around Time  =  (12 + 3 + 6+  1)/4 = 5.50  
  2. An operating system uses the Shortest Remaining Time First (SRTF) process scheduling algorithm. Consider the arrival times and execution times for the following processes:
     
Process Arrival time Burst Time
P1 20 ms  0 ms
P2 25 ms 15 ms
P3 10 ms 30 ms
P4 15 ms 45 ms
  1. What is the total waiting time for process P2? (A) 5 (B) 15 (C) 40 (D) 55 Answer (B) At time 0, P1 is the only process, P1 runs for 15 time units. At time 15, P2 arrives, but P1 has the shortest remaining time. So P1 continues for 5 more time units. At time 20, P2 is the only process. So it runs for 10 time units At time 30, P3 is the shortest remaining time process. So it runs for 10 time units At time 40, P2 runs as it is the only process. P2 runs for 5 time units. At time 45, P3 arrives, but P2 has the shortest remaining time. So P2 continues for 10 more time units. P2 completes its execution at time 55

Total waiting time for P2 
= Completion time – (Arrival time + Execution time)
= 55 – (15 + 25)
= 15

Related articles:


Article Tags :