0% found this document useful (0 votes)
26 views14 pages

CPU-Scheduling SOLVED Problems FOR PRACTISE

The document discusses various CPU scheduling algorithms, including First Come First Serve (FCFS), Shortest Job First (SJF), and Round Robin. FCFS is simple but has high average wait times, while SJF minimizes waiting time but can lead to starvation. Round Robin improves response time but may also cause starvation for longer processes, and its performance is dependent on the time quantum.

Uploaded by

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

CPU-Scheduling SOLVED Problems FOR PRACTISE

The document discusses various CPU scheduling algorithms, including First Come First Serve (FCFS), Shortest Job First (SJF), and Round Robin. FCFS is simple but has high average wait times, while SJF minimizes waiting time but can lead to starvation. Round Robin improves response time but may also cause starvation for longer processes, and its performance is dependent on the time quantum.

Uploaded by

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

Unit IV – CPU Scheduling and Algorithm First

Come First Serve (FCFS)


In FCFS Scheduling
●​ The process which arrives first in the ready queue is firstly assigned the CPU.
●​ In case of a tie, process with smaller process id is executed first.
●​ It is always non-preemptive in nature.
●​ Jobs are executed on first come, first serve basis.
●​ It is a non-preemptive, pre-emptive scheduling algorithm.
●​ Easy to understand and implement.
●​ Its implementation is based on FIFO queue.
●​ Poor in performance as average wait time is high.

Advantages-
●​ It is simple and easy to understand.
●​ It can be easily implemented using queue data structure.
●​ It does not lead to starvation.
Disadvantages-
●​ It does not consider the priority or burst time of the processes.
●​ It suffers from convoy effect i.e. processes with higher burst time arrived
before the processes with smaller burst time.
Example 1:
Example 2:
Consider the processes P1, P2, P3 given in the below table, arrives for execution in
the same order, with Arrival Time 0, and given Burst Time,
PROCESS ARRIVAL TIME BURST TIME
P1 0 24
P2 0 3
P3 0 3
Gantt chart

P1 P2 P3
0​ 24​ 27​ 30
PROCESS WAIT TIME TURN AROUND TIME
P1 0 24
P2 24 27
P3 27 30

Total Wait Time = 0 + 24 + 27 = 51 ms

Average Waiting Time = (Total Wait Time) / (Total number of processes) = 51/3 = 17 ms

Total Turn Around Time: 24 + 27 + 30 = 81 ms

Average Turn Around time = (Total Turn Around Time) / (Total number of processes)
= 81 / 3 = 27 ms
Throughput = 3 jobs/30 sec = 0.1 jobs/sec
Example 3:
Consider the processes P1, P2, P3, P4 given in the below table, arrives for execution
in the same order, with given Arrival Time and Burst Time.
PROCESS ARRIVAL TIME BURST TIME
P1 0 8
P2 1 4
P3 2 9
P4 3 5

Gantt chart
P1 P2 P3 P4
0​ 8​ 12​ 21​ 26

PROCESS WAIT TIME TURN AROUND TIME


P1 0 8–0=8
P2 8–1=7 12 – 1 = 11
P3 12 – 2 = 10 21 – 2 = 19
P4 21 – 3 = 18 26 – 3 = 23

Total Wait Time:= 0 + 7 + 10 + 18 = 35 ms

Average Waiting Time = (Total Wait Time) / (Total number of processes)= 35/4 = 8.75 ms

Total Turn Around Time: 8 + 11 + 19 + 23 = 61 ms

Average Turn Around time = (Total Turn Around Time) / (Total number of processes)
61/4 = 15.25 ms

(b)​Shortest Job First (SJF)


●​ Process which have the shortest burst time are scheduled first.
●​ If two processes have the same bust time, then FCFS is used to break the tie.
●​ This is a non-pre-emptive, pre-emptive scheduling algorithm.
●​ 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.
●​ Pre-emptive mode of Shortest Job First is called as Shortest Remaining Time
First (SRTF).

Advantages-
●​ SRTF is optimal and guarantees the minimum average waiting time.
●​ It provides a standard for other algorithms since no other algorithm
performs better than it.

Disadvantages-
●​ It can not be implemented practically since burst time of the processes can
not be known in advance.
●​ It leads to starvation for processes with larger burst time.
●​ Priorities can not be set for the processes.
●​ Processes with larger burst time have poor response time.

Example-01:
Consider the set of 5 processes whose arrival time and burst time are given below-
Process Id Arrival time Burst time
P1 3 1
P2 1 4
P3 4 2
P4 0 6
P5 2 3
Solution-
If the CPU scheduling policy is SJF non-preemptive, calculate the average waiting
time and average turnaround time.
Gantt Chart-

Now, we know-
●​ Turn Around time = Exit time – Arrival time
●​ Waiting time = Turn Around time – Burst time

Process Id Exit time Turn Around time Waiting time


P1 7 7–3=4 4–1=3
P2 16 16 – 1 = 15 15 – 4 = 11
P3 9 9–4=5 5–2=3
P4 6 6–0=6 6–6=0
P5 12 12 – 2 = 10 10 – 3 = 7
Now,
●​ Average Turn Around time = (4 + 15 + 5 + 6 + 10) / 5 = 40 / 5 = 8 unit
●​ Average waiting time = (3 + 11 + 3 + 0 + 7) / 5 = 24 / 5 = 4.8 unit

Example-02:
Consider the set of 5 processes whose arrival time and burst time are given below-
Process Id Arrival time Burst time
P1 3 1
P2 1 4
P3 4 2
P4 0 6
P5 2 3
If the CPU scheduling policy is SJF pre-emptive, calculate the average waiting
time and average turnaround time.
Solution-
Gantt Chart-

Process Id Exit time Turn Around time Waiting time


P1 4 4–3=1 1–1=0
P2 6 6–1=5 5–4=1
P3 8 8–4=4 4–2=2
P4 16 16 – 0 = 16 16 – 6 = 10
P5 11 11 – 2 = 9 9–3=6

Now,

●​ Average Turn Around time = (1 + 5 + 4 + 16 + 9) / 5 = 35 / 5 = 7 unit


●​ Average waiting time = (0 + 1 + 2 + 10 + 6) / 5 = 19 / 5 = 3.8 unit

Example-03:

Consider the set of 6 processes whose arrival time and burst time are given below-

Process Id Arrival time Burst time


P1 0 7
P2 1 5
P3 2 3
P4 3 1
P5 4 2
P6 5 1

If the CPU scheduling policy is shortest remaining time first, calculate the
average waiting time and average turnaround time.
Solution-
Gantt Chart-

Now, we know-
●​ Turn Around time = Exit time – Arrival time
●​ Waiting time = Turn Around time – Burst time

Process Id Exit time Turn Around time Waiting time


P1 19 19 – 0 = 19 19 – 7 = 12
P2 13 13 – 1 = 12 12 – 5 = 7
P3 6 6–2=4 4–3=1
P4 4 4–3=1 1–1=0
P5 9 9–4=5 5–2=3
P6 7 7–5=2 2–1=1

Now,
●​ Average Turn Around time = (19 + 12 + 4 + 1 + 5 + 2) / 6 = 43 / 6 = 7.17 unit
●​ Average waiting time = (12 + 7 + 1 + 0 + 3 + 1) / 6 = 24 / 6 = 4 unit
Example -04:

Consider the set of 3 processes whose arrival time and burst time are given below-

Process Id Arrival time Burst time


P1 0 9
P2 1 4
P3 2 9

If the CPU scheduling policy is SRTF, calculate the average waiting time and average
turn around time.

Solution-
Gantt Chart-

Now, we know-
●​ Turn Around time = Exit time – Arrival time
●​ Waiting time = Turn Around time – Burst time

Process Id Exit time Turn Around time Waiting time


P1 13 13 – 0 = 13 13 – 9 = 4
P2 5 5–1=4 4–4=0
P3 22 22- 2 = 20 20 – 9 = 11

Now,
●​ Average Turn Around time = (13 + 4 + 20) / 3 = 37 / 3 = 12.33 unit
●​ Average waiting time = (4 + 0 + 11) / 3 = 15 / 3 = 5 unit

Example-05:

Consider the set of 4 processes whose arrival time and burst time are given below-

Process Id Arrival time Burst time


P1 0 20
P2 15 25
P3 30 10
P4 45 15
If the CPU scheduling policy is SRTF, calculate the waiting time of process P2.

Solution-

Gantt Chart-

Now, we know-
●​ Turn Around time = Exit time – Arrival time
●​ Waiting time = Turn Around time – Burst time

Thus,
●​ Turn Around Time of process P2 = 55 – 15 = 40 unit
●​ Waiting time of process P2 = 40 – 25 = 15 unit

(c)​Round Robin Scheduling


●​ CPU is assigned to the process on the basis of FCFS for a fixed amount of time.
●​ This fixed amount of time is called as time quantum or time slice.
●​ After the time quantum expires, the running process is preempted and sent to
the ready queue.
●​ Then, the processor is assigned to the next arrived process.
●​ It is always preemptive in nature.
Advantages-

●​ It gives the best performance in terms of average response time.


●​ It is best suited for time sharing system, client server architecture
and interactive system.

Disadvantages-

●​ It leads to starvation for processes with larger burst time as they have to
repeat the cycle many times.
●​ Its performance heavily depends on time quantum.
●​ Priorities can not be set for the processes.

Example-01:
Consider the set of 5 processes whose arrival time and burst time are given below-
Process Id Arrival time Burst time
P1 0 5
P2 1 3
P3 2 1
P4 3 2
P5 4 3
If the CPU scheduling policy is Round Robin with time quantum = 2 unit, calculate
the average waiting time and average turnaround time.
Solution-​
Ready Queue-​ P5, P1, P2, P5, P4, P1, P3, P2, P1
Gantt Chart-

Now, we know-
●​ Turn Around time = Exit time – Arrival time
●​ Waiting time = Turn Around time – Burst time
Process Id Exit time Turn Around time Waiting time
P1 13 13 – 0 = 13 13 – 5 = 8
P2 12 12 – 1 = 11 11 – 3 = 8
P3 5 5–2=3 3–1=2
P4 9 9–3=6 6–2=4
P5 14 14 – 4 = 10 10 – 3 = 7
Now,
●​ Average Turn Around time = (13 + 11 + 3 + 6 + 10) / 5 = 43 / 5 = 8.6 unit
●​ Average waiting time = (8 + 8 + 2 + 4 + 7) / 5 = 29 / 5 = 5.8 unit
Problem-02:
Consider the set of 6 processes whose arrival time and burst time are given below-
Process Id Arrival time Burst time
P1 0 4

P2 1 5

P3 2 2

P4 3 1

P5 4 6

P6 6 3
If the CPU scheduling policy is Round Robin with time quantum = 2, calculate the
average waiting time and average turnaround time.
Solution-
Ready Queue-​ P5, P6, P2, P5, P6, P2, P5, P4, P1, P3, P2, P1
Gantt chart-

Now, we know-
●​ Turn Around time = Exit time – Arrival time
●​ Waiting time = Turn Around time – Burst time

Process Id Exit time Turn Around time Waiting time


P1 8 8–0=8 8–4=4
P2 18 18 – 1 = 17 17 – 5 = 12
P3 6 6–2=4 4–2=2
P4 9 9–3=6 6–1=5
P5 21 21 – 4 = 17 17 – 6 = 11
P6 19 19 – 6 = 13 13 – 3 = 10
Now,
●​ Average Turn Around time = (8 + 17 + 4 + 6 + 17 + 13) / 6 = 65 / 6 = 10.84 unit
●​ Average waiting time = (4 + 12 + 2 + 5 + 11 + 10) / 6 = 44 / 6 = 7.33 unit
Problem-03: Consider the set of 6 processes whose arrival time and burst time
are given below-
Process Id Arrival time Burst time
P1 5 5
P2 4 6
P3 3 7
P4 1 9
P5 2 2
P6 6 3
If the CPU scheduling policy is Round Robin with time quantum = 3, calculate the
average waiting time and average turnaround time.
Solution-
Ready Queue-​ P3, P1, P4, P2, P3, P6, P1, P4, P2, P3, P5, P4
Gantt chart-

Now, we know-
●​ Turn Around time = Exit time – Arrival time
●​ Waiting time = Turn Around time – Burst time
Process Id Exit time Turn Around time Waiting time
P1 32 32 – 5 = 27 27 – 5 = 22
P2 27 27 – 4 = 23 23 – 6 = 17
P3 33 33 – 3 = 30 30 – 7 = 23
P4 30 30 – 1 = 29 29 – 9 = 20
P5 6 6–2=4 4–2=2
P6 21 21 – 6 = 15 15 – 3 = 12
Now,

●​ Average Turn Around time = (27 + 23 + 30 + 29 + 4 + 15) / 6 = 128 / 6 = 21.33 unit


●​ Average waiting time = (22 + 17 + 23 + 20 + 2 + 12) / 6 = 96 / 6 = 16 unit

(d)​Priority Scheduling
●​ Out of all the available processes, CPU is assigned to the process having
the highest priority.
●​ In case of a tie, it is broken by FCFS Scheduling.
●​ Priority Scheduling can be used in both preemptive and non-preemptive mode.

●​ The waiting time for the process having the highest priority will always be zero
in preemptive mode.
●​ The waiting time for the process having the highest priority may not be zero in
non- preemptive mode.
Priority scheduling in preemptive and non-preemptive mode behaves exactly same under
following conditions-
●​ The arrival time of all the processes is same
●​ All the processes become available
Advantages-
●​ It considers the priority of the processes and allows the important processes
to run first.
●​ Priority scheduling in pre-emptive mode is best suited for real time operating
system.
Disadvantages-
●​ Processes with lesser priority may starve for CPU.
●​ There is no idea of response time and waiting time.

Problem-01:
Consider the set of 5 processes whose arrival time and burst time are given below-
Process Id Arrival time Burst time Priority

P1 0 4 2

P2 1 3 3

P3 2 1 4

P4 3 5 5
P5 4 2 5

If the CPU scheduling policy is priority non-preemptive, calculate the average waiting time
and average turnaround time. (Higher number represents higher priority)
Solution-
Gantt
Chart-

Now, we know-
●​ Turn Around time = Exit time – Arrival time
●​ Waiting time = Turn Around time – Burst time
Process Id Exit time Turn Around time Waiting time
P1 4 4–0=4 4–4=0
P2 15 15 – 1 = 14 14 – 3 = 11
P3 12 12 – 2 = 10 10 – 1 = 9
P4 9 9–3=6 6–5=1
P5 11 11 – 4 = 7 7–2=5
Now,
●​ Average Turn Around time = (4 + 14 + 10 + 6 + 7) / 5 = 41 / 5 = 8.2 unit
●​ Average waiting time = (0 + 11 + 9 + 1 + 5) / 5 = 26 / 5 = 5.2 unit

Problem-02: Consider the set of 5 processes whose arrival time and burst time
are given below-
Process Id Arrival time Burst time Priority
P1 0 4 2
P2 1 3 3
P3 2 1 4
P4 3 5 5
P5 4 2 5
If the CPU scheduling policy is priority preemptive, calculate the average waiting
time and average turn around time. (Higher number represents higher priority).
Solution-
Gantt Chart-

Now, we know-
●​ Turn Around time = Exit time – Arrival time
●​ Waiting time = Turn Around time – Burst time
Process Id Exit time Turn Around time Waiting time
P1 15 15 – 0 = 15 15 – 4 = 11
P2 12 12 – 1 = 11 11 – 3 = 8
P3 3 3–2=1 1–1=0
P4 8 8–3=5 5–5=0
P5 10 10 – 4 = 6 6–2=4
Now,
●​ Average Turn Around time = (15 + 11 + 1 + 5 + 6) / 5 = 38 / 5 = 7.6 unit
●​ Average waiting time = (11 + 8 + 0 + 0 + 4) / 5 = 23 / 5 = 4.6 unit

You might also like