Process Schedulers in Operating System
Process Schedulers in Operating System
GeeksforGeeks
In computing, a process is the instance of a computer program that is being executed by one or many
threads. Scheduling is important in many different computer environments. One of the most important areas
of scheduling is which programs will work on the CPU. This task is handled by the Operating System (OS)
of the computer and there are many different ways in which we can choose to configure programs.
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. In this article, we are going to discuss
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.
Process scheduling is an essential part of a Multiprogramming operating system. 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.
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 assigns resources to a process for a predetermined period. The process
switches from running state to ready state or from waiting state to ready state during resource allocation.
This switching happens because the CPU may give other processes priority and substitute the currently
active process for the higher priority process.
It brings the new process to the ‘Ready State’. It controls the Degree of Multi-programming, i.e., the number
of processes present in a ready state at any point in time. It is important that the long-term scheduler make a
careful selection of both I/O and CPU-bound processes. I/O-bound tasks are which use much of their time in
input and output operations while CPU-bound processes are which spend their time on the CPU. The job
scheduler increases efficiency by maintaining a balance between the two. They operate at a high level and
are typically used in batch-processing systems.
It is responsible for selecting one process from the ready state for scheduling it on the running state. Note:
Short-term scheduler only selects the process to schedule it doesn’t load the process on running. Here is
when all the scheduling algorithms are used. The CPU scheduler is responsible for ensuring no starvation
due to high burst time processes.
Short Term Scheduler
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:
Switching context.
3. Medium-Term Scheduler
It is responsible for suspending and resuming the process. It mainly does swapping (moving processes from
main memory to disk and vice versa). Swapping may be necessary to improve the process mix or because a
change in memory requirements has overcommitted available memory, requiring memory to be freed up. It
is helpful in maintaining a perfect balance between the I/O bound and the CPU bound. It reduces the degree
of multiprogramming.
I/O Schedulers: I/O schedulers are in charge of managing the execution of I/O operations such as reading
and writing to discs or networks. They can use various algorithms to determine the order in which I/O
operations are executed, such as FCFS (First-Come, First-Served) or RR (Round Robin).
Real-Time Schedulers: In real-time systems, real-time schedulers ensure that critical tasks are completed
within a specified time frame. They can prioritize and schedule tasks using various algorithms such as EDF
(Earliest Deadline First) or RM (Rate Monotonic).
The terms “running” and “non-running” states are used to describe the two-state process model.
Running: A newly created process joins the system in a running state when it is created.
Not Running: Processes that are not currently running are kept in a queue and await execution. A pointer to
a specific process is contained in each entry in the queue. Linked lists are used to implement the queue
system. This is how the dispatcher is used. When a process is stopped, it is moved to the back of the waiting
queue. The process is discarded depending on whether it succeeded or failed. The dispatcher then chooses a
process to run from the queue in either scenario.
Context Switching
In order for a process execution to be continued from the same point at a later time, context switching is a
mechanism to store and restore the state or context of a CPU in the Process Control block. A context
switcher makes it possible for multiple processes to share a single CPU using this method. A multitasking
operating system must include context switching among its features.
The state of the currently running process is saved into the process control block when the scheduler
switches the CPU from executing one process to another. The state used to set the computer, registers, etc.
for the process that will run next is then loaded from its own PCB. After that, the second can start
processing.
Context Switching
In order for a process execution to be continued from the same point at a later time, context switching is a
mechanism to store and restore the state or context of a CPU in the Process Control block. A context
switcher makes it possible for multiple processes to share a single CPU using this method. A multitasking
operating system must include context switching among its features.
Program Counter
Scheduling information
Changed State
Accounting information
Conclusion
In conclusion, process schedulers are essential parts of operating systems that manage how the CPU handles
multiple tasks or processes. They ensure that processes are executed efficiently, making the best use of CPU
resources and maintaining system responsiveness. By choosing the right process to run at the right time,
schedulers help optimize overall system performance, improve user experience, and ensure fair access to
CPU resources among competing processes.
In an operating system, CPU scheduling refers to a technique that permits one process to utilize the CPU
while keeping the other programs waiting or put on hold.
IPC is an operating system technique that facilitates data sharing, synchronization, and communication
between processes.
Improve