Operating System - Process Scheduling
Previous
Quiz
Next
Definition
The process scheduling is the activity of the process manager that handles the removal of the
running process from the CPU and the selection of another process on the basis of a particular
strategy.
Process scheduling is an essential part of a Multiprogramming operating systems. Such
operating systems allow more than one process to be loaded into the executable memory at a
time and the loaded process shares the CPU using time multiplexing.
Advertisement
Categories of Scheduling
There are two categories of scheduling:
1. Non-preemptive: Here the resource cant be taken from a process until the process
completes execution. The switching of resources occurs when the running process
terminates and moves to a waiting state.
2. Preemptive: Here the OS allocates the resources to a process for a fixed amount of time.
During resource allocation, the process switches from running state to ready state or
from waiting state to ready state. This switching occurs as the CPU may give priority to
other processes and replace the process with higher priority with the running process.
Process Scheduling Queues
The OS maintains all Process Control Blocks (PCBs) in Process Scheduling Queues. The OS
maintains a separate queue for each of the process states and PCBs of all processes in the same
execution state are placed in the same queue. When the state of a process is changed, its PCB is
unlinked from its current queue and moved to its new state queue.
The Operating System maintains the following important process scheduling queues −
Job queue − This queue keeps all the processes in the system.
Ready queue − This queue keeps a set of all processes residing in main memory, ready
and waiting to execute. A new process is always put in this queue.
Device queues − The processes which are blocked due to unavailability of an I/O device
constitute this queue.
The OS can use different policies to manage each queue (FIFO, Round Robin, Priority, etc.). The
OS scheduler determines how to move processes between the ready and run queues which can
only have one entry per processor core on the system; in the above diagram, it has been
merged with the CPU.
Two-State Process Model
Two-state process model refers to running and non-running states which are described below −
S.N. State & Description
Running
1
When a new process is created, it enters into the system as in the running state.
2 Not Running
Processes that are not running are kept in queue, waiting for their turn to execute. Each entry in the
queue is a pointer to a particular process. Queue is implemented by using linked list. Use of dispatcher
as follows. When a process is interrupted, that process is transferred in the waiting queue. If the proce
has completed or aborted, the process is discarded. In either case, the dispatcher then selects a proce
from the queue to execute.
Schedulers
Schedulers are special system software which handle process scheduling in various ways. Their
main task is to select the jobs to be submitted into the system and to decide which process to
run. Schedulers are of three types −
Long-Term Scheduler
Short-Term Scheduler
Medium-Term Scheduler
Long Term Scheduler
It is also called a job scheduler. A long-term scheduler determines which programs are admitted
to the system for processing. It selects processes from the queue and loads them into memory
for execution. Process loads into the memory for CPU scheduling.
The primary objective of the job scheduler is to provide a balanced mix of jobs, such as I/O
bound and processor bound. It also controls the degree of multiprogramming. If the degree of
multiprogramming is stable, then the average rate of process creation must be equal to the
average departure rate of processes leaving the system.
On some systems, the long-term scheduler may not be available or minimal. Time-sharing
operating systems have no long term scheduler. When a process changes the state from new to
ready, then there is use of long-term scheduler.
Short Term Scheduler
It is also called as CPU scheduler. Its main objective is to increase system performance in
accordance with the chosen set of criteria. It is the change of ready state to running state of the
process. CPU scheduler selects a process among the processes that are ready to execute and
allocates CPU to one of them.
Short-term schedulers, also known as dispatchers, make the decision of which process to
execute next. Short-term schedulers are faster than long-term schedulers.
Medium Term Scheduler
Medium-term scheduling is a part of swapping. It removes the processes from the memory. It
reduces the degree of multiprogramming. The medium-term scheduler is in-charge of handling
the swapped out-processes.
A running process may become suspended if it makes an I/O request. A suspended processes
cannot make any progress towards completion. In this condition, to remove the process from
memory and make space for other processes, the suspended process is moved to the secondary
storage. This process is called swapping, and the process is said to be swapped out or rolled
out. Swapping may be necessary to improve the process mix.
Comparison among Scheduler
S.N. Long-Term Scheduler Short-Term Scheduler Medium-Term Scheduler
1 It is a job scheduler It is a CPU scheduler It is a process swapping schedule
Speed is lesser than short term Speed is fastest among other Speed is in between both short a
2
scheduler two long term scheduler.
It controls the degree of It provides lesser control over It reduces the degree of
3
multiprogramming degree of multiprogramming multiprogramming.
It is almost absent or minimal in It is also minimal in time
4 It is a part of Time sharing system
time sharing system sharing system
It selects processes from pool and It can re-introduce the process in
It selects those processes
5 loads them into memory for memory and execution can be
which are ready to execute
execution continued.
Context Switching
A context switching is the mechanism to store and restore the state or context of a CPU in
Process Control block so that a process execution can be resumed from the same point at a later
time. Using this technique, a context switcher enables multiple processes to share a single CPU.
Context switching is an essential part of a multitasking operating system features.
When the scheduler switches the CPU from executing one process to execute another, the state
from the current running process is stored into the process control block. After this, the state for
the process to run next is loaded from its own PCB and used to set the PC, registers, etc. At that
point, the second process can start executing.
Context switches are
computationally intensive since register and memory state must be saved and restored. To avoid
the amount of context switching time, some hardware systems employ two or more sets of
processor registers. When the process is switched, the following information is stored for later
use.
Program Counter
Scheduling information
Base and limit register value
Currently used register
Changed State
I/O State information
Accounting information
Process Schedulers in Operating System
Last Updated : 06 Jan, 2026
Process scheduling is the activity of the process manager that handles the removal of the
running process from the CPU and the selection of another process based on a particular
strategy. Throughout its lifetime, a process moves between various scheduling queues, such as
the ready queue, waiting queue or devices queue.
Process scheduler
Categories of Scheduling
Scheduling falls into one of two categories:
Non-Preemptive: In this case, a process's resource cannot be taken before the process
has finished running. When a running process finishes and transitions to a waiting state,
resources are switched.
Preemptive: In this case, the OS can switch a process from running state to ready state.
This switching happens because the CPU may give other processes priority and
substitute the currently active process for the higher priority process.
Refer Preemptive vs Non-Preemptive Scheduling for details.
Process Scheduler
Process Schedulers are fundamental components of operating systems responsible for deciding
the order in which processes are executed by the CPU. In simpler terms, they manage how the
CPU allocates its time among multiple tasks or processes that are competing for its attention.
Types of Process Schedulers
There are three types of process schedulers:
1. Long-Term Scheduler (Job Scheduler)
The Long-Term Scheduler is responsible for loading processes from disk into main memory so
they can begin execution. When a new process is admitted, it moves into the Ready state.
Key Functions
Transfers processes from the Job Queue to the Ready Queue.
Controls the degree of Multi-programming — the number of processes present in
memory or ready state at any time.
Carefully selects a balanced mix of I/O-bound and CPU-bound processes to ensure
efficient system performance.
Helps avoid a situation where either the CPU or I/O devices remain idle.
In many modern time-sharing systems (such as Windows), a long-term scheduler may
not exist; new processes are directly admitted to memory for short-term scheduling.
Performance
It is the slowest among all schedulers, as it operates less frequently.
2. Short-Term Scheduler (CPU Scheduler)
The Short-Term Scheduler (STS) is responsible for selecting a process from the ready queue and
assigning the CPU to it.
Key Functions
Frequently selects the next process to execute from the ready state.
Ensures no process suffers from starvation.
Uses various CPU scheduling algorithms to decide process order.
Maximizes CPU utilization by keeping the processor as busy as possible.
Calls the dispatcher, which performs the actual context switch.
Performance
It is the fastest scheduler, since it operates very frequently (often every few
milliseconds).
The dispatcher is responsible for loading the process selected by the Short-term scheduler on the
CPU (Ready to Running State). Context switching is done by the dispatcher only. A dispatcher
does the following work:
Saving context (process control block) of previously running process if not finished.
Switching system mode to user mode.
Jumping to the proper location in the newly loaded program.
Note: Time taken by dispatcher is called dispatch latency or process context switch time.
Short-Term Scheduler
2.1 Dispatcher
The Dispatcher is a special program that takes over once the short-term scheduler selects a
process. It transfers control of the CPU to the chosen process.
Functions of the Dispatcher
Context Switching: Saves the state of the previously running process and restores the
state of the new one.
Mode Switching: Ensures correct transition into user mode from kernel mode.
Program Control Transfer: Jumps to the correct starting point in the newly selected
program.
Dispatcher Example
Using FCFS scheduling for processes P1 → P2 → P3 → P4:
Scheduler selects P1 first.
Dispatcher loads P1 onto the CPU.
Next the scheduler selects P2, and the dispatcher assigns P2 to the CPU, and so on.
Note
The time taken by the dispatcher to perform context switching is called dispatch latency.
Dispatcher
3. Medium-Term Scheduler
The Medium-Term Scheduler (MTS) manages swapping, which temporarily moves processes
between main memory and disk.
Key Functions
Swaps processes out of memory when they are waiting (e.g., blocked for I/O) to reduce
the degree of multiprogramming.
Frees memory for other active processes.
Swaps processes back into memory when they are ready to continue execution, allowing
them to resume from where they left off.
Helps maintain an effective mix of CPU-bound and I/O-bound processes.
Performance
It operates faster than the long-term scheduler but slower than the short-term
scheduler.
Medium-Term Scheduler
Some Other Schedulers
I/O Schedulers
Manage order of read/write operations.
Reduce I/O wait time and improve performance.
Schedule I/O requests using algorithms like FCFS, RR, SCAN, C-SCAN.
Real-Time Schedulers
Used in systems where tasks must meet deadlines.
Ensure timely execution of critical tasks.
Use algorithms like EDF and RM.
Comparison Among Scheduler
Long-Term Scheduler Short-Term Scheduler Medium-Term Scheduler
It is a process-swapping
It is a job scheduler It is a CPU scheduler
scheduler
Long-Term Scheduler Short-Term Scheduler Medium-Term Scheduler
Its speed lies between long-
It is the slowest scheduler It is the fastest scheduler term and short-term
schedulers
It gives less control over
It controls the degree of It reduces the degree of
the degree of
multiprogramming multiprogramming
multiprogramming
It is barely present or
It is essential for time- It is a component of time-
nonexistent in time-sharing
sharing systems sharing systems
systems
It selects processes from the It can re-introduce processes
It selects ready processes
job pool and loads them into into memory and resume
for execution by the CPU
memory execution