×

What is Context Switching

Context Switching is the switching of CPU from one process to another process. Context switching means storing the process state so that we can reload the process when needed, and the execution of the process can be resumed from the same point later. Context Switching is the characteristic of a multitasking operating system. In context switching, one CPU can be shared among several processes. In other words, context switching is the mechanism that permits a single CPU to handle several threads or processes without the need for extra processors.

In context switching, processes are switched so quickly that the user gets the myth that all processes are running simultaneously.

But in the process of context switching, there are lots of steps that we need to follow. We cannot directly change or switch the process from running state to ready state. It is mandatory to save the context of that process. If we do not save the context of the process, while again executing the process, we need to start its execution from the beginning. In reality, the process continues from that state, where the CPU left the process in its previous execution. So, it is required to save the context of the process before placing some other process in the running state. Context means data of CPU registers and program counter anytime.

Context Switching Triggers

The context switching triggers are:

  1. Interrupts
  2. Multitasking
  3. Kernel/user switch

Interrupts: - We require context switching if there is an interruption of CPU to get data from the disk read.

Multitasking: - If the CPU has to move processes in and out of memory so that it can run more than one operation.

Kernel/user switch: - We use kernel/user switch if we require switching between the user mode to the kernel mode.

Steps Involved in Context Switching

With the help of the below figure, we describe the procedure of context switching between the processes, which are P1 and P2.

We can see in the following figure that initially, the P1 process is in running state, and the P2 process is in the ready state. If there occurs some interruption, then it is required to change the state of the P1 process from running to the ready state. When the context of the process P1 is saved, then change the state of the P2 process from ready to the running state. 

What is Context Switching

 There are various steps which are involved in the context switching:

  1. The process P1 context, which is in the running state, will be stored in PCB (Program Control Block). That is called PCB1.
  2. Next, PCB1 is transferred to the appropriate queue, i.e., the I/O queue, ready queue, and the waiting queue.
  3. Then from the ready queue, we choose the new process which is to be executed i.e., the process P2.
  4. Next, we update the PCB (Program Control Block) of the P2 process called PCB2. It includes switching the process state from one to another (ready, blocked, suspend, or exit). If the CPU previously executed process P2, then we get the location of the last executed process so that we can again proceed with the P2 process execution.
  5. In the same manner, if we again need to execute the process P1, then the same procedure is followed.

Information stored in PCB (Program Control Block) for Context Switching

The information stored in PCB for context switching are:

  1. Program counter
  2. Information related Scheduling
  3. Accounting information
  4. Base and limits registers
  5. Changed state

Related Topics

Trap vs Interrupt in Operating System

What is Trap in Operating System? A trap is a synchronous interrupt used to perform functionality when an error occurs in a user process. A trap in an operating system can...

4 minutes read.

Multi-user Operating Systems

Introduction Since only one user may interact with the computer at any given time, the operating system we use on our personal computers, laptops, tablets, and phones is sometimes referred to...

8 minutes read.

Feedback Queue in Operating System

In a computer or a laptop, there is a processor which do all the tasks. The processor cannot do all the tasks at a time. So, the tasks will be...

3 minutes read.

Free Space Management in Operating System

What is Free Space Management? The system always keeps the records of the free disks blocks for allocating space to files when they are created. To use the space free from...

4 minutes read.

Difference between SCAN and FCFS Disk Scheduling Algorithm

SCAN / Elevator Algorithm A different form of disc scheduling method is the SCAN disc scheduling algorithm. We move the disc arm in a certain direction in this process (the direction...

3 minutes read.

Distributed Shared Memory

Distributed Shared Memory is a process of managing memory over more than one node and makes inter-process communication which transfers to end users. It is a mechanism that allows user...

2 minutes read.

Advantages of Operating System

What is an Operating System?   An operating system is an interface that helps to communicate with the user and the computer hardware. Operating systems are used for file management, memory...

3 minutes read.

Commercial Mobile Operating Systems

Introduction to Commercial Mobile Operating Systems A computer program's common services are managed by an operating system (OS), which also handles computer hardware and software resources. The user can communicate with...

7 minutes read.

What is Demand Paging?

Demand Paging is defined as a process in which the pages are loaded into the memory (when the page fault occurs) or on-demand. It consists of the following steps: If there is...

4 minutes read.

What is Context Switching

Context Switching is the switching of CPU from one process to another process. Context switching means storing the process state so that we can reload the process when needed, and the execution...

3 minutes read.

Test Set Lock Mechanism | Operating System

Modification in the Assembly Code The problem in the lock variable is that, in some cases, the process reads the previous or old value of the lock variable and enters into the critical...

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.

Two Phase Locking Protocol

What is two phase locking? Two-phase locking is a concurrency control method in a database and transaction processing system. It ensures that transactions are executed in a serializable manner by requiring...

4 minutes read.

Why is it critical for the Scheduler to distinguish between I/O-bound and CPU-bound programs

A CPU-bound process is one that spends most of its time executing instructions on the processor. A process that is I/O-bound spends most of its time waiting for input and...

2 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.

What is Thread and Types of Thread

What is Thread A thread means a lightweight process. Thread is the basic unit of CPU execution, which consists of thread ID, Program counter, set of registers to hold the information of current...

7 minutes read.

Interested Variable Mechanism

Interested Variable Mechanism It is a must to provide progress to the process synchronization mechanism. In variable mechanism, if there is a process that doesn’t need to enter into the critical section, then due...

5 minutes read.

Multitasking Operating Systems

An operating system is the fundamental piece of software that enables a computer system to function and execute a command as intended. The user interface, hardware, and every other piece...

7 minutes read.

Booting Process in Operating System

What is Booting? Booting is defined as the term which says that the process of loading the operating system into the memory. The process of booting begins when we switch on...

4 minutes read.

Turn Variable or Strict Alternative Approach

Turn Variable or Strict Alternative Approach Turn Variable Approach is used for process synchronization mechanism, which offers synchronization between two processes. Turn variable is implemented on user mode, and it is a software mechanism. We...

3 minutes read.