What is CPU Scheduling?
CPU Scheduling is
a process of determining which process will own CPU for execution while another
process is on hold. The main task of CPU scheduling is to make sure that
whenever the CPU remains idle, the OS at least selects one of the processes
available in the ready queue for execution. The selection process will be
carried out by the CPU scheduler. It selects one of the processes in memory
that are ready for execution.
·
In
this CPU scheduling tutorial, you will learn:
·
Types
of CPU Scheduling
·
Important
CPU scheduling Terminologies
·
CPU
Scheduling Criteria
·
Interval
Timer
·
What
is a Dispatcher?
·
Types
of CPU scheduling Algorithm
·
First
Come First Serve
·
Shortest
Remaining Time
·
Priority
Based Scheduling
·
Round-Robin
Scheduling
·
Shortest
Job First
·
Multiple-Level
Queues Scheduling
·
The
Purpose of a Scheduling algorithm
Types of CPU
Scheduling
Here are two
kinds of Scheduling methods:
Preemptive Scheduling
In
Preemptive Scheduling, the tasks are mostly assigned with their priorities.
Sometimes it is important to run a task with a higher priority before another
lower-priority task, even if the lower-priority task is still running. The
lower priority task holds for some time and resumes when the higher priority
task finishes its execution.
Click Me to Explore
Detailed description of the Computer and its Components.
(Input Units)
A Complete and Detailed Definition with examples of Output
Devices (New Tech based)
The Central Processing Unit (CPU) Latest Enquiries
Memory Unit (I/O) Devices by Farrukh
The Basic Terminologies of Computer by Md. Farrukh Asif
Generation of Computer by Md. Farrukh Asif
The Evolution of Computer Languages(Part-I) by Md. Farrukh
Asif
The Evolution of Computer Languages(Part-II) by Md. Farrukh
Asif
Computer Network Topologies
By Md. Farrukh Asif
Communication Protocols
by “Md Farrukh Asif”
Basic Computer's Features and Use by Md. Farrukh Asif
Operating System and its Functionality: by Md. Farrukh Asif
Batch OS and Time Sharing OS by Md. Farrukh Asif
Real-Time Operating Systems (RTOS): Explained Simply
The Wider
Use of Microkernel and its Components in OS
Fundamentals of Computer MCQs with Answers
Non-Preemptive
Scheduling
In
this type of scheduling method, the CPU has been allocated to a specific
process. The process that keeps the CPU busy will release the CPU either by
switching context or terminating. It is the only method that can be used for
various hardware platforms. That’s because it doesn’t need special hardware
(for example, a timer) like preemptive scheduling.
When
scheduling is Preemptive or Non-Preemptive?
To
determine if scheduling is preemptive or non-preemptive, consider these four
parameters:
1. A process switches from the running to
the waiting state.
2. Specific process switches from the
running state to the ready state.
3. Specific process switches from the
waiting state to the ready state.
4. Process finished its execution and
terminated.
Only
conditions 1 and 4 apply, the scheduling is called non-preemptive.
All
other scheduling is preemptive.
Important CPU
scheduling Terminologies
·
Burst
Time/Execution Time: It is the time required by the process to complete
execution. It is also called running time.
·
Arrival
Time: when a process enters in a ready state
·
Finish
Time: when the process is complete and exits from a system
·
Multiprogramming: Several programs which can be present in memory at the same time.
·
Jobs: It
is a type of program without any kind of user interaction.
·
User: It
is a kind of program having user interaction.
·
Process: It
is the reference that is used for both the job and the user.
·
CPU/IO
burst cycle: Characterizes process execution, which alternates between CPU
and I/O activity. CPU times are usually shorter than the time of I/O.
CPU Scheduling
Criteria
A
CPU scheduling algorithm tries to maximize and minimize the following:
CPU
utilization: CPU utilization is the main task in which the operating
system needs to make sure that the CPU remains as busy as possible. It can range
from 0 to 100 percent. However, for the RTOS, it can range from 40 percent
for low-level and 90 percent for high-level systems.
Throughput: The
number of processes that finish their execution per unit of time is known as Throughput. So, when the CPU is busy executing the process, at that time, work
is being done, and the work completed per unit time is called Throughput.
Minimize:
Waiting
time: Waiting time is an amount that specific process needs to wait in the
ready queue.
Response
time: It is the amount of time in which the request was submitted until the
first response is produced.
Turnaround
Time: Turnaround time is an amount of time to execute a specific process.
It is the calculation of the total time spent waiting to get into the memory,
waiting in the queue and, executing on the CPU. The period between the time of
process submission to the completion time is the turnaround time.
Interval Timer
Timer
interruption is a method that is closely related to preemption. When a train
process gets the CPU allocation, a timer may be set to a specified interval.
Both timer interruption and preemption force a process to return the CPU before
its CPU burst is complete.
Most
of the multi-programmed operating system uses some form of a timer to prevent a
process from tying up the system forever.
What is
Dispatcher?
It
is a module that provides control of the CPU to the process. The Dispatcher
should be fast so that it can run on every context switch. Dispatch latency is
the amount of time needed by the CPU scheduler to stop one process and start
another.
Functions
performed by Dispatcher:
- Context Switching
- Switching to user mode
- Moving to the correct location in
the newly loaded program.
Types of CPU
Scheduling Algorithm
There are
mainly six types of process scheduling algorithms
- First Come First Serve (FCFS)
- Shortest-Job-First (SJF)
Scheduling
- Shortest Remaining Time
- Priority Scheduling
- Round Robin Scheduling
- Multilevel Queue Scheduling
Scheduling Algorithms
First Come
First Serve
First
Come First Serve is the full form of FCFS. It is the easiest and most simple
CPU scheduling algorithm. In this type of algorithm, the process that requests
the CPU gets the CPU allocation first. This scheduling method can be managed
with a FIFO queue.
As
the process enters the ready queue, its PCB (Process Control Block) is linked
with the tail of the queue. So, when CPU becomes free, it should be assigned to
the process at the beginning of the queue.
Characteristics
of the FCFS method:
- It offers a non-preemptive and
pre-emptive scheduling algorithm.
- Jobs are always executed on a
first-come, first-served basis
- It is easy to implement and use.
- However, this method is poor in
performance, and the general wait time is quite high.
Shortest
Remaining Time
The
full form of SRT is the Shortest remaining time. It is also known as SJF preemptive
scheduling. In this method, the process will be allocated to the task, which is
closest to its completion. This method prevents a newer ready state process
from holding the completion of an older process.
Characteristics
of the SRT scheduling method:
- This method is mostly applied in
batch environments where short jobs are required to be given preference.
- This is not an ideal method to
implement in a shared system where the required CPU time is unknown.
- Associate with each process as
the length of its next CPU burst. So the operating system uses these
lengths, which helps to schedule the process in the shortest possible
time.
Priority Based
Scheduling
Priority scheduling
is a method of scheduling processes based on priority. In this method, the
scheduler selects the tasks to work as per the priority.
Priority scheduling
also helps OS to involve priority assignments. The processes with higher
priority should be carried out first, whereas jobs with equal priorities are
carried out on a round-robin or FCFS basis. Priority can be decided based on
memory requirements, time requirements, etc.
Round-Robin
Scheduling
Round robin is the
oldest, simplest scheduling algorithm. The name of this algorithm comes from
the round-robin principle, where each person gets an equal share of something
in turn. It is mostly used for scheduling algorithms in multitasking. This
algorithm method helps for starvation-free execution of processes.
Characteristics
of Round-Robin Scheduling
- Round robin is a hybrid model
which is clock-driven
- Time slice should be minimum,
which is assigned for a specific task to be processed. However, it may
vary for different processes.
- It is a real-time system that
responds to the event within a specific time limit.
Shortest Job
First
SJF is a full form of
(Shortest job first) is a scheduling algorithm in which the process with the
shortest execution time should be selected for execution next. This scheduling
method can be preemptive or non-preemptive. It significantly reduces the
average waiting time for other processes awaiting execution.
Characteristics
of SJF Scheduling
- It is associated with each job as
a unit of time to complete.
- In this method, when the CPU is
available, the next process or job with the shortest completion time will
be executed first.
- It is implemented with a non-preemptive policy.
- This algorithm method is useful
for batch-type processing, where waiting for jobs to complete is not
critical.
- It improves job output by
offering shorter jobs, which should be executed first, and mostly have a
shorter turnaround time.
Multiple-Level
Queues Scheduling
This algorithm
separates the ready queue into various separate queues. In this method,
processes are assigned to a queue based on a specific property of the process,
like the process priority, size of the memory, etc.
However, this is not
an independent scheduling OS algorithm as it needs to use other types of
algorithms to schedule the jobs.
Characteristic
of Multiple-Level Queues Scheduling:
- Multiple queues should be
maintained for processes with some characteristics.
- Every queue may have its separate
scheduling algorithms.
- Priorities are given for each
queue.
The Purpose of
a Scheduling Algorithm
Here are the reasons for
using a scheduling algorithm:
- The CPU uses scheduling to
improve its efficiency.
- It helps you to allocate
resources among competing processes.
- The maximum utilization of the CPU
can be obtained with multi-programming.
- The processes that are to be
executed are in the ready queue.
Summary:
- CPU scheduling is a process of
determining which process will own CPU for execution while another process
is on hold.
- In Preemptive Scheduling, the
tasks are mostly assigned with their priorities.
- In the Non-preemptive scheduling
method, the CPU has been allocated to a specific process.
- The burst time is the time
required for the process to complete execution. It is also called running
time.
- CPU utilization is the main task
in which the operating system needs to ensure that the CPU remains as busy
as possible.
- The number of processes that
finish their execution per unit of time is known as Throughput.
- Waiting time is an amount that a
specific process needs to wait in the ready queue.
- It is the amount of time in which
the request was submitted until the first response is produced.
- Turnaround time is the amount of
time to execute a specific process.
- Timer interruption is a method
that is closely related to preemption.
- A dispatcher is a module that
provides control of the CPU to the process.
- Six types of process scheduling
algorithms are: First Come First Serve (FCFS), 2) Shortest-Job-First (SJF)
Scheduling, 3) Shortest Remaining Time, 4) Priority Scheduling, 5) Round
Robin Scheduling, 6) Multilevel Queue Scheduling.
- In the First Come First Serve
method, the process which requests the CPU gets the CPU allocation first.
- In the Shortest Remaining time,
the process will be allocated to the task closest to its completion.
- In Priority Scheduling, the
scheduler selects the tasks to work as per the priority.
- Round-robin scheduling works on
the principle that each person gets an equal share of something in turn.
- In the Shortest job first, the
shortest execution time should be selected for execution next.
- The multilevel scheduling method
separates the ready queue into various separate queues. In this method,
processes are assigned to a queue based on a specific property.
- The CPU uses scheduling to
improve its efficiency.
Operating
System Scheduling algorithms
A
Process Scheduler schedules different processes to be assigned to the CPU based
on particular scheduling algorithms. There are six popular process scheduling
algorithms which we are going to discuss in this chapter −
- First-Come, First-Served (FCFS)
Scheduling
- Shortest-Job-Next (SJN)
Scheduling
- Priority Scheduling
- Shortest Remaining Time
- Round Robin(RR) Scheduling
- Multiple-Level Queues Scheduling
These algorithms
are either non-preemptive or preemptive. Non-preemptive algorithms
are designed so that once a process enters the running state, it cannot be
preempted until it completes its allotted time, whereas preemptive
scheduling is based on priority where a scheduler may preempt a low-priority
running process anytime when a high-priority process
enters into a ready state.
First Come
First Serve (FCFS)
- Jobs are executed on a first come,
first serve basis.
- It is a non-preemptive,
pre-emptive scheduling algorithm.
- Easy to understand and implement.
- Its implementation is based on the FIFO queue.
- Poor in performance as average
wait time is high.
The wait time for each process is as follows –
Process |
Wait Time
: Service Time - Arrival Time |
P0 |
0 - 0 = 0 |
P1 |
5 - 1 = 4 |
P2 |
8 - 2 = 6 |
P3 |
16 - 3 = 13 |
Average Wait Time: (0+4+6+13) / 4 = 5.75
Shortest Job
Next (SJN)
- This is also known
as shortest job first, or SJF
- This is a non-preemptive,
pre-emptive scheduling algorithm.
- The best approach to minimize waiting
time.
- Easy to implement in Batch
systems where required CPU time is known in advance.
- Impossible to implement in
interactive systems where required CPU time is not known.
- The processer should know in
advance how much time process will take.
- Given: Table of processes, and
their Arrival time, Execution time
Process |
Arrival
Time |
Execution
Time |
Service
Time |
P0 |
0 |
5 |
0 |
P1 |
1 |
3 |
5 |
P2 |
2 |
8 |
14 |
P3 |
3 |
6 |
8 |
The waiting time for each process is as follows −
Process |
Waiting
Time |
P0 |
0 - 0 = 0 |
P1 |
5 - 1 = 4 |
P2 |
14 - 2 = 12 |
P3 |
8 - 3 = 5 |
Average Wait Time: (0 + 4 + 12 + 5)/4 = 21 / 4 = 5.25
Priority Based
Scheduling
- Priority scheduling is a
non-preemptive algorithm and one of the most common scheduling algorithms
in batch systems.
- Each process is assigned a
priority. The process with the highest priority is to be executed first and so on.
- Processes with the same priority are
executed onfirst-come-servedved basis.
- Priority can be decided based on
memory requirements, time requirements,, or any other resource requirement.
·
Given:
Table of processes, and their Arrival time, Execution time, and priority. Here
we are considering 1 as the lowest priority.
Process |
Arrival Time |
Execution Time |
Priority |
Service Time |
P0 |
0 |
5 |
1 |
0 |
P1 |
1 |
3 |
2 |
11 |
P2 |
2 |
8 |
1 |
14 |
P3 |
3 |
6 |
3 |
5 |
The waiting time for each process is as follows −
Process |
Waiting
Time |
P0 |
0 - 0 = 0 |
P1 |
11 - 1 = 10 |
P2 |
14 - 2 = 12 |
P3 |
5 - 3 = 2 |
Average Wait Time: (0 + 10 + 12 + 2)/4 = 24 / 4 = 6
Shortest
Remaining Time
·
Shortest
remaining time (SRT) is the preemptive version of the SJN algorithm.
·
The
processor is allocated to the job closest to completion but it can be preempted
by a newer ready job with a shorter time to completion.
·
Impossible
to implement in interactive systems where required CPU time is not known.
·
It
is often used in batch environments where short jobs
need to give preference.
Round Robin
Scheduling
·
Round
Robin is the preemptive process scheduling algorithm.
·
Each
process is provided a fixed time to execute, it is called a quantum.
·
Once
a process is executed for a given period, it is preempted and another
process executes for a given period.
·
Context
switching is used to save states of preempted processes.
The wait time of each process is as follows −
Process |
Wait Time: Service Time - Arrival Time |
P0 |
(0 - 0) +
(12 - 3) = 9 |
P1 |
(3 - 1) = 2 |
P2 |
(6 - 2) +
(14 - 9) + (20 - 17) = 12 |
P3 |
(9 - 3) +
(17 - 12) = 11 |
Average
Wait Time: (9+2+12+11) / 4 = 8.5
Multiple-Level
Queues Scheduling
Multiple-level
queues are not an independent scheduling algorithm. They make use of other
existing algorithms to group and schedule
jobs with common characteristics.
- Multiple queues are maintained
for processes with common characteristics.
- Each queue can have its own
scheduling algorithms.
- Priorities are assigned to each
queue.
For
example, CPU-bound jobs can be scheduled in
one queue and all I/O-bound jobs in another queue. The Process Scheduler then
alternately selects jobs from each queue and assigns them to the CPU based on
the algorithm assigned to the queue.
***
See You Again ***
=========================
Like,
Comment, Share
=========================
No comments:
Post a Comment