0% found this document useful (0 votes)
192 views5 pages

Preemptive and Non-Preemptive Scheduling

Preemptive and Non-Preemptive Scheduling

Uploaded by

ezekiel nyamu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
192 views5 pages

Preemptive and Non-Preemptive Scheduling

Preemptive and Non-Preemptive Scheduling

Uploaded by

ezekiel nyamu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 5

Preemptive and Non-Preemptive

Scheduling
Last Updated : 12 Jul, 2024

In operating systems, scheduling is the method by which processes are given access to system
resources, primarily the CPU. Efficient scheduling is essential for optimal system
performance and user satisfaction. There are two primary types of CPU scheduling:
preemptive and non-preemptive.

Understanding the differences between preemptive and non-preemptive scheduling helps in


designing and choosing the right scheduling algorithms for various types of operating
systems. You will discover the distinction between preemptive and non-preemptive
scheduling in this article. But first, you need to understand preemptive and non-preemptive
scheduling before going over the differences.

What is Preemptive Scheduling?


Preemptive scheduling is used when a process switches from the running state to the ready
state or from the waiting state to the ready state. The resources (mainly CPU cycles) are
allocated to the process for a limited amount of time and then taken away, and the process is
again placed back in the ready queue if that process still has CPU burst time remaining. That
process stays in the ready queue till it gets its next chance to execute.

Algorithms based on preemptive scheduling are Round Robin (RR), Shortest Remaining
Time First (SRTF), Priority (preemptive version), etc.
Preemptive Scheduling

Advantages of Preemptive Scheduling

 Because a process may not monopolize the processor, it is a more reliable method.

 Each occurrence prevents the completion of ongoing tasks.

 The average response time is improved.

 Utilizing this method in a multi-programming environment is more advantageous.

 The operating system makes sure that every process using the CPU is using the same
amount of CPU time.

Disadvantages of Preemptive Scheduling

 Limited computational resources must be used.

 Suspending the running process, change the context, and dispatch the new incoming
process all take more time.

 The low-priority process would have to wait if multiple high-priority processes


arrived at the same time.

What is Non-Preemptive Scheduling?


Non-preemptive Scheduling is used when a process terminates, or a process switches from
running to the waiting state. In this scheduling, once the resources (CPU cycles) are allocated
to a process, the process holds the CPU till it gets terminated or reaches a waiting state. In the
case of non-preemptive scheduling does not interrupt a process running CPU in the middle of
the execution. Instead, it waits till the process completes its CPU burst time, and then it can
allocate the CPU to another process.

Algorithms based on non-preemptive scheduling are: Shortest Job First (SJF basically non
preemptive) and Priority (nonpreemptive version), etc.
Advantages of Non-Preemptive Scheduling

 It has a minimal scheduling burden.

 It is a very easy procedure.

 Less computational resources are used.

 It has a high throughput rate.

Disadvantages of Non-Preemptive Scheduling

 Its response time to the process is super.

 Bugs can cause a computer to freeze up.

Key Differences Between Preemptive and Non-Preemptive


Scheduling
 In preemptive scheduling, the CPU is allocated to the processes for a limited time
whereas, in Non-preemptive scheduling, the CPU is allocated to the process till it
terminates or switches to the waiting state.

 The executing process in preemptive scheduling is interrupted in the middle of


execution when a higher priority one comes whereas, the executing process in non-
preemptive scheduling is not interrupted in the middle of execution and waits till its
execution.

 In Preemptive Scheduling, there is the overhead of switching the process from the
ready state to the running state, vise-verse, and maintaining the ready queue. Whereas
in the case of non-preemptive scheduling has no overhead of switching the process
from running state to ready state.

 In preemptive scheduling, if a high-priorThe process The process non-preemptive


low-priority process frequently arrives in the ready queue then the process with low
priority has to wait for a long, and it may have to starve. , in non-preemptive
scheduling, if CPU is allocated to the process having a larger burst time then the
processes with a small burst time may have to starve.

 Preemptive scheduling attains flexibility by allowing the critical processes to access


the CPU as they arrive in the ready queue, no matter what process is executing
currently. Non-preemptive scheduling is called rigid as even if a critical process
enters the ready queue the process running CPU is not disturbed.

 Preemptive Scheduling has to maintain the integrity of shared data that’s why it is cost
associative which is not the case with Non-preemptive Scheduling.

Parameter PREEMPTIVE SCHEDULING NON-PREEMPTIVE SCHEDULING


Once resources(CPU Cycle) are allocated
In this resources(CPU Cycle) are
to a process, the process holds it till it
Basic allocated to a process for a limited
completes its burst time or switches to
time.
waiting state
Process can be interrupted in Process can not be interrupted until it
Interrupt
between. terminates itself or its time is up
If a process having high priority
If a process with a long burst time is
frequently arrives in the ready
Starvation running CPU, then later coming process
queue, a low priority process may
with less CPU burst time may starve
starve
It has overheads of scheduling the
Overhead It does not have overheads
processes
Flexibility flexible Rigid
Cost Cost associated No cost associated
CPU In preemptive scheduling, CPU
It is low in non preemptive scheduling
Utilization utilization is high
Waiting Preemptive scheduling waiting time Non-preemptive scheduling waiting time
Time is less is high
Response Preemptive scheduling response Non-preemptive scheduling response time
Time time is less is high
Decisions are made by the process itself
Decisions are made by the
Decision and the OS just follows the process’s
scheduler and are based on priority
making instructions
and time slice allocation
The OS has less control over the
Process The OS has greater control over the
scheduling of processes
control scheduling of processes
Lower overhead since context switching
Higher overhead due to frequent
Overhead is less frequent
context switching
Examples Examples of preemptive scheduling Examples of non-preemptive scheduling
Parameter PREEMPTIVE SCHEDULING NON-PREEMPTIVE SCHEDULING
are Round Robin and Shortest are First Come First Serve and Shortest
Remaining Time First Job First

Conclusion
Preemptive scheduling allows the operating system to interrupt and reassign the CPU to
different processes, making it responsive and efficient for high-priority tasks. Non-
preemptive scheduling lets processes run to completion without interruption, simplifying the
system but potentially causing delays for other tasks. The choice between these methods
depends on the system’s needs for performance and simplicity.

Preemptive and Non-Preemptive Scheduling – FAQs


How is priority determined in preemptive scheduling?

Preemptive scheduling systems often assign priority levels to tasks or processes. The priority
can be determined based on factors like the nature of the task, its importance, or its deadline.
Higher-priority tasks are given precedence and are allowed to execute before lower-priority
tasks.

What happens in non-preemptive scheduling if a task does not yield the


CPU?

In non-preemptive scheduling, if a task does not voluntarily yield the CPU, it can lead to a
situation called a “starvation” or “deadlock” where other tasks are unable to execute. To
avoid such scenarios, it’s important to ensure that tasks have mechanisms to release the CPU
when necessary, such as waiting for I/O operations or setting maximum execution times.

Which scheduling method is better for real-time systems?

Preemptive scheduling is generally better for real-time systems because it allows high-
priority tasks to be addressed immediately, meeting the time-sensitive requirements of such
systems.

You might also like