OS-operating systems- ch05 (CPU Scheduling) ...

MazinAlkthere 448 views 99 slides May 13, 2024
Slide 1
Slide 1 of 99
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99

About This Presentation

operating systems , ch-05, (CPU Scheduling), 3rd level, College of Computers, Seiyun University. انظمة التشغيل لطلاب المستوى الثالث بكلية الحاسبات بجامعة سيئون المحاضرة 05


Slide Content

Chapter 5: CPU Scheduling

•CPUschedulingisthecentralinmulti-programming
system.
2
•Maximum CPU utilizationobtainedwith
multiprogramming (prevent CPU from being idle).
•Processes residing in the main memory is selected by
the Scheduler that is:
Concerned with deciding a policy about which process is
to be selected.
Process selection based on a scheduling algorithm.
BasicConcepts

BasicConcepts
3

BasicConcepts
4

•Processexecutionconsistsofacycleof
CPUexecutionandI/Owait.
•Processesalternatebetweenthesetwo
states.Processexecutionbeginswitha
CPUburst.ThatisfollowedbyanI/O
burst,whichisfollowedbyanother
CPUburst,thenanotherI/Oburst,and
soon.
•CPUburstsvarygreatlyfromprocessto
processandfromcomputertocomputer.
BasicConcepts
5

Schedulers
•Long-termschedulerchoosessomeofthemtogoto
memory(readyqueue).
•Then,short-termscheduler(orCPUscheduler)chooses
fromreadyqueueajobtorunonCPU.
•Medium-termschedulermaymove(swap)some
partially-executedjobsfrommemorytodisk(toenhance
performance).
6
BasicConcepts

CPU Scheduler
•WhenevertheCPUbecomesidle,theoperatingsystem
mustselectoneoftheprocessesinthereadyqueuetobe
executed.Theselectionprocessiscarriedoutbytheshort-
termscheduler,orCPUscheduler.
7
BasicConcepts

CPUschedulingdecisionsmaytakeplace whena process:
1.Switchesfromrunningtowaiting state
2.Switchesfromrunningto readystate
3.Switchesfromwaitingtoready
4.Terminates
8
BasicConcepts

Scheduling can be
•Non-preemptive
Oncea processisallocatedthe
CPU,itdoesnot leave until terminate.
•Preemptive
OScanforce(preempt)a process
fromCPUat anytime.
Say, to allocate CPU to another higher-priority process.
9
BasicConcepts

Non-preemptive and Preemptive
•Preemptiveisharder:Needtomaintainconsistencyof
datasharedbetweenprocesses,andmoreimportantly,
kerneldatastructures(e.g.,I/Oqueues).
10
BasicConcepts

Dispatcher
•DispatchermodulegivescontroloftheCPUtothe
processselectedbytheshort-termscheduler;thisinvolves:
Switchingcontext.
Switchingtousermode.
Jumpingtotheproperlocationintheuserprogramtorestart
thatprogram.
•Dispatchlatency–timeittakesforthedispatchertostop
oneprocessandstartanotherrunning.
11
BasicConcepts

•CPUutilization–keeptheCPUasbusyaspossible.
•Throughput–numberofprocessesthatcompletetheir
executionpertimeunit.
•Turnaroundtime–amountoftimetoexecuteaparticular
process.(timefromsubmissiontotermination)
•Waitingtime–amountoftimeaprocesshasbeenwaitingin
thereadyqueue.
•Responsetime–amountoftimeittakesfromwhenarequest
wassubmitteduntilthefirstresponseisproduced,notoutput.
12
SchedulingCriteria

SchedulingAlgorithmOptimizationCriteria
•MaxCPUutilization.
•Maxthroughput.
•Minturnaroundtime.
•Minwaitingtime.
•Minresponsetime.
13
SchedulingCriteria

•TherearemanydifferentCPU-schedulingalgorithms:
1.First Come,FirstServed(FCFS).
2.ShortestJobFirst(SJF).
PreemptiveSJF.
Non-PreemptiveSJF.
3.Priority.
4.RoundRobin.
5.Multilevelqueues.
14
SchedulingAlgorithms

1.First-Come,First-Served(FCFS)Scheduling
SchedulingAlgorithms
Process BurstTime
P
1 24
P
2 3
P
3 3
Suppose that the processes arrive in the order: P
1 , P
2 , P
3
The Gantt Chart for the schedule is:
Note:A process may have many CPU bursts, but in the following
examples we show only one for simplicity.

First-Come, First-Served (FCFS) Scheduling
Process Burst Time
P
1 24
P
2 3
P
3 3
Suppose that the processes arrive in the order: P
1, P
2, P
3
The Gantt Chart for the schedule is:
P
1 P
2 P
3
24 27 300
Waiting Time
??????�??????�??????�
0 24 27
Averagewaitingtime:
(0+24+27)/3=17
TurnaroundTime
??????�??????�??????�
24 27 30
Averageturnaroundtime:
(24+27+30)/3=27
Response Time
??????�??????�??????�
0 24 27
Averageresponsetime:
(0+24+27)/3=17

FCFS Scheduling (Cont.)
Suppose that the processes arrive in the order
P
2, P
3, P
1
The Gantt chart for the schedule is:
P
1P
3P
2
63 300
Waiting Time
??????�??????�??????�
6 0 3
Averagewaitingtime:
(6+0+3)/3=3
Turnaround Time
??????�??????�??????�
30 3 6
Averageturnaroundtime:
(30+3+6)/3=13
Response Time
??????�??????�??????�
6 0 3
Averageresponsetime:
(6+0+3)/3=3
•Much better than previous case
•Convoy effectshort process behind long process

Shortest-Job-First (SJR) Scheduling
Associate with each process the length of its next CPU
burst. Use these lengths to schedule the process with the
shortest time
Two schemes:
nonpreemptive –once CPU given to the process it
cannot be preempted until completes its CPU burst
preemptive –if a new process arrives with CPU burst
length less than remaining time of current executing
process, preempt. This scheme is know as the
Shortest-Remaining-Time-First (SRTF)
SJF is optimal –gives minimum average waiting time for a
given set of processes

Process Arrival Time Burst Time
P
1 0.0 7
P
2 2.0 4
P
3 4.0 1
P
4 5.0 4
SJF (non-preemptive)
Average waiting time = (0 + 6 + 3 + 7)/4 = 4
Example of Non-Preemptive SJF
P
1 P
3 P
2
73 160
P
4
8 12

Example of Preemptive SJF
Process Arrival Time Burst Time
P
1 0.0 7
P
2 2.0 4
P
3 4.0 1
P
4 5.0 4
SJF (preemptive)
Average waiting time = (9 + 1 + 0 +2)/4 = 3
P
1 P
3P
2
42
110
P
4
5 7
P
2 P
1
16

Priority Scheduling
A priority number (integer) is associated with each process
The CPU is allocated to the process with the highest
priority (smallest integer highest priority)
Preemptive
nonpreemptive
SJFis a priority scheduling where priority is the predicted
next CPU burst time
Problem Starvation –low priority processes may never execute
Solution Aging –as time progresses increase the priority of the
process

3.PriorityScheduling
SchedulingAlgorithms
(2/25)
Process Burst Time Priority
P
1 10 3
P
2 1 1
P
3 2 4
P
4 1 5
P
5 5 2
PriorityschedulingGanttChart
22

3.PriorityScheduling
SchedulingAlgorithms
(2/25)
Process Burst Time Priority
P
1 10 3
P
2 1 1 Highest priority
P
3 2 4
P
4 1 5
P
5 5 2
PriorityschedulingGanttChart
23

3.PriorityScheduling
SchedulingAlgorithms
Process Burst Time Priority
P
1 10 3
P
2 1 1
P
3 2 4
P
4 1 5
P
5 5 2
PriorityschedulingGanttChart
24

3.PriorityScheduling
SchedulingAlgorithms
(3/25)
25
Process Burst Time Priority
P
1 10 3
P
2 1 1
P
3 2 4
P
4 1 5
P
5 5 2
PriorityschedulingGanttChart

3.PriorityScheduling
SchedulingAlgorithms
(3/25)
26
Process Burst Time Priority
P
1 10 3
P
2 1 1
P
3 2 4
P
4 1 5
P
5 5 2
PriorityschedulingGanttChart

3.PriorityScheduling
SchedulingAlgorithms
(3/25)
27
Process Burst Time Priority
P
1 10 3
P
2 1 1
P
3 2 4
P
4 1 5
P
5 5 2
PriorityschedulingGanttChart

3.PriorityScheduling
SchedulingAlgorithms
28
Process Burst Time Priority
P
1 10 3
P
2 1 1
P
3 2 4
P
4 1 5
P
5 5 2
PriorityschedulingGanttChart
Waiting Time
??????�??????�??????�??????�??????�
6 0 1618 1
AverageWaitingtime=
[6+0+16+18+1]/5= 8.2msec
Turnaround Time
??????�??????�??????�??????�??????�
161 18196
AverageTurnaroundtime=
[16+1+18+19+6]/5= 12msec
Response Time
??????�??????�??????�??????�??????�
6 0 16 18 1
AverageResponsetime=
[6+0+16+18+1]/5=8.2msec

Round Robin (RR)
Each process gets a small unit of CPU time (time quantum),
usually 10-100 milliseconds. After this time has elapsed,
the process is preempted and added to the end of the ready
queue.
If there are nprocesses in the ready queue and the time
quantum is q, then each process gets 1/nof the CPU time in
chunks of at most qtime units at once. No process waits
more than (n-1)q time units.
Performance
qlarge FIFO
q small q must be large with respect to context switch,
otherwise overhead is too high

Example of RR with Time Quantum = 20
Process Burst Time
P
1 53
P
2 17
P
3 68
P
4 24
The Gantt chart is:
Typically, higher average turnaround than SJF, but better response
P
1P
2P
3P
4P
1P
3P
4P
1P
3P
3
02037577797117121134154162

Time Quantum and Context Switch Time

4. RoundRobin(RR)Scheduling
SchedulingAlgorithms
Process BurstTime
P
1 24
P
2 3
P
3 3
All the processes arrive at the same time 0 dnuoR .
:mutnauq fo gniludehcs )RR( niboR4 ms
32

4. RoundRobin(RR)Scheduling
SchedulingAlgorithms
33
Process BurstTime
P
1 24
P
2 3
P
3 3
All the processes arrive at the same time 0 .
:mutnauq fo gniludehcs )RR( niboR dnuoR4 ms
P
1
0 4 7 10 14 18 22 26 30
P
2
P
3
P
1
P
1
P
1
P
1
P
1

4. RoundRobin(RR)Scheduling
SchedulingAlgorithms
34
Process BurstTime
P
1 24
P
2 3
P
3 3
All the processes arrive at the same time 0 .
:mutnauq fo gniludehcs )RR( niboR dnuoR4 ms
P
1
0 4 7 10 14 18 22 26
30
P
2
P
3
P
1
P
1
P
1
P
1
P
1

4. RoundRobin(RR)Scheduling
SchedulingAlgorithms
35
Process BurstTime
P
1 24
P
2 3
P
3 3
All the processes arrive at the same time 0 .
:mutnauq fo gniludehcs )RR( niboR dnuoR4 ms
0 4 7 10 14 18 22 26 30
P
1
P
2
P
3
P
1
P
1
P
1
P
1
P
1

4. RoundRobin(RR)Scheduling
SchedulingAlgorithms
36
Process BurstTime
P
1 24
P
2 3
P
3 3
All the processes arrive at the same time 0 .
:mutnauq fo gniludehcs )RR( niboR dnuoR4 ms
P
1
P
2
P
3
P
1
0 14 18 22 26 30
P
1
P
1
P
1
P
1
4 7 10

4. RoundRobin(RR)Scheduling
SchedulingAlgorithms
37
Process BurstTime
P
1 24
P
2 3
P
3 3
All the processes arrive at the same time 0 .
:mutnauq fo gniludehcs )RR( niboR dnuoR4 ms
P
1
P
2
P
3
P
1
P
1
0 18 22 26 30
P
1
P
1
P
1
144 7 10

4. RoundRobin(RR)Scheduling
SchedulingAlgorithms
38
Process BurstTime
P
1 24
P
2 3
P
3 3
All the processes arrive at the same time 0 .
:mutnauq fo gniludehcs )RR( niboR dnuoR4 ms
P
1
P
1
0 18 26 30144 7 10 22
P
1 P
2 P
3 P
1 P
1 P
1

4. RoundRobin(RR)Scheduling
SchedulingAlgorithms
39
Process BurstTime
P
1 24
P
2 3
P
3 3
All the processes arrive at the same time 0 .
:mutnauq fo gniludehcs )RR( niboR dnuoR4 ms
P
1 P
2 P
3 P
1 P
1 P
1 P
1 P
1
0 18 3026144 7 10 22

4. RoundRobin(RR)Scheduling
SchedulingAlgorithms
40
Process BurstTime
P
1 24
P
2 3
P
3 3
All the processes arrive at the same time 0 .
:mutnauq fo gniludehcs )RR( niboR dnuoR4 ms
P
1 P
2 P
3 P
1 P
1 P
1 P
1 P
1
0 18 3026144 7 10 22

4. RoundRobin(RR)Scheduling
SchedulingAlgorithms
41
Process BurstTime
P
1 24
P
2 3
P
3 3
All the processes arrive at the same time 0 niboR dnuoR .
:mutnauq fo gniludehcs )RR(4 ms
4 7 10
#ofcontextswitches=7
P
1 P
2 P
3 P
1 P
1 P
1 P
1 P
1
0 18 302614 22

4. RoundRobin(RR)Scheduling
SchedulingAlgorithms
(11/25)
Process BurstTime
P
1 24
P
2 3
P
3 3
Alltheprocessesarriveatthesametime0.
RoundRobin(RR)schedulingofquantum:4ms
P
1 P
2 P
3 P
1 P
1 P
1 P
1 P
1
42
0 18 3026144 7 10 22
Waiting Time
??????�??????�??????�
0( +10 −4) 4 7
Averagewaitingtime:
(6+4+7)/3=5.667ms
Turnaround
Time
??????�??????�??????�
30 7 10
AverageTurnaroundtime:
(30 + 7 + 10)/3 = 15.667ms
Response Time
??????�??????�??????�
0 47
AverageResponsetime:
(0+4+7)/3=3.667 ms

CHAPTER 5 -PART 2

SchedulingAlgorithms
(16/25)
5. Multilevel Queue Scheduling
Scheduling must be done between the queues:
Fixed priority scheduling; (i.e., serve all from foreground
then from background).Possibility of starvation.
Time slice –each queue gets a certain amount of CPU time
which it can schedule amongst its processes; i.e., 80% to
foreground in RR.
20% to background in FCFS.

SchedulingAlgorithms
(17/25)
5. Multilevel QueueScheduling

SchedulingAlgorithms
(18/25)
5. Multilevel QueueScheduling
Threequeues:
Q
0–RRwithtimequantum8milliseconds
Q
1–RRtimequantum16milliseconds
Q
2–FCFS

SchedulingAlgorithms
(19/32)
5.MultilevelQueueScheduling
Scheduling
Anewjob enters queue�0which is servedFCFS
WhenitgainsCPU,jobreceives8milliseconds.
Ifitdoesnotfinishin8 milliseconds,jobismovedtoqueue �1.
At�1jobisagainservedFCFSandreceives16additionalmilliseconds
Ifitstilldoesnotcomplete,it ispreemptedandmovedtoqueue�2.

SchedulingAlgorithms
(20/32)
5. Multilevel Queue Scheduling
Now we add the concepts of varying arrival times and preemption to the
analysis
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 60
P
3 2 20
P
4 3 40
Multilevel Queue Fixed priority
non-preemptive
Using multi-processors
or multi-core processor

5. Multilevel QueueScheduling
SchedulingAlgorithms
(21/32)
Process
P
1P
2P
3
P
4
Arrival TimeBurst Time
0 7
160
220
340
�0
�1
�2
�0
�1
�2

5. Multilevel QueueScheduling
SchedulingAlgorithms
(21/32)
3
�1
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 60
P 2 20
P
4 3 40
7ms
�0
�1
�2
�0
�1
�2
7ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(21/32)
3
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 60
P 2 20
P
4 3 40
7ms
7ms 8ms
�1 �2
�0
�1
�2
�0
�1
�2

5. Multilevel QueueScheduling
SchedulingAlgorithms
(21/32)
Process
P
1P
2P
Arrival TimeBurst Time
0 7
1
2
3
6052
20
40
�1 �2
�0
�1
�2
�0
�1
�2
3
P
4
15ms
7ms 8ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(21/32)
Process
P
1P
2P
Arrival TimeBurst Time
0 7
1
2
3
6052
20
40
�1 �2
�2
�3
�0
�1
�2
�0
�1
�2
3
P
4
15ms
7ms 8ms 8ms

SchedulingAlgorithms
(21/32)
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 605244
P
3 2 2012
P
4 3 40
�1 �2
�
2
�3
�0
�1
�2
5. Multilevel QueueScheduling
�0
�1
�2
23ms
7ms 8ms 8ms

SchedulingAlgorithms
(21/32)
�0
�1
�2
5. Multilevel QueueScheduling
�0
�1
�2
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 605244
P
3 2 2012
P
4 3 40
23ms
7ms 8ms 8ms 8ms
�1 �2 �3 �4
�2

SchedulingAlgorithms
(21/32)
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 60524436
P
3 2 2012
P
4 3 4032
�1 �2
�2
�3
�0
�1
�2
5. Multilevel Queue Scheduling
�0
�1
�2
31ms
�4
7ms 8ms 8ms 8ms
16ms

SchedulingAlgorithms
(21/32)
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 60524436
P
3 2 2012
P
4 3 4032
�1 �2
�2
�3
�0
�1
�2
5. Multilevel Queue Scheduling
�0
�1
�2
31ms
�4
7ms 8ms 8ms
�2
�3
8ms
16ms12ms
36ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(21/32)
Process
P
1P
2
P
3P
4
Arrival TimeBurst Time
0 7
1
2
3
6052443624
2012
4032
�1 �2
�2
�3
�0
�1
�2
�0
�1
�2
43ms
�4
7ms 8ms 8ms
�2
�3
8ms
16ms 12ms
36ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(21/32)
Process
P
1P
2
P
3P
4
Arrival TimeBurst Time
0 7
1
2
3
6052443624
2012
4032
�1 �2
�2
�3
�0
�1
�2
�0
�1
�2
43ms
�4
7ms 8ms 8ms
�2
�3
8ms
16ms
�4
12ms 16ms
36ms

SchedulingAlgorithms
(21/32)
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 60524436248
P
3 2 2012
P
4 3 403216
�1 �2
�2
�3
�0
�1
�2
5. Multilevel Queue Scheduling
�0
�1
�2
59ms
�4
7ms 8ms 8ms
�2
�3
8ms
16ms
�4
12ms 16ms
36ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(21/32)
Process
P
1P
2
P
3P
4
Arrival TimeBurst Time
0 7
1
2
3
60524436248
2012
403216
�1 �2
�2
�3
�0
�1
�2
�0
�1
�2
67ms
�4
7ms 8ms 8ms
�2
�3
8ms
16ms
�4
12ms 16ms
36ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(21/32)
Process
P
1P
2
P
3P
4
Arrival TimeBurst Time
0 7
1
2
3
60524436248
2012
403216
�1 �2
�2
�3
�0
�1
�2
�0
�1
�2
67ms
�4
7ms 8ms 8ms
�2
�3
8ms
16ms
�4
12ms 16ms
36ms
�4
16ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(21/32)
Process
P
1P
2
P
3P
4
Arrival TimeBurst Time
0 7
1
2
3
60524436248
2012
403216
�1 �2
�2
�3
�0
�1
�2
�0
�1
�2
83ms
�4
7ms 8ms 8ms
�2
�3
8ms
16ms
�4
12ms 16ms
36ms
�4
16ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(21/32)
Process
P
1P
2
P
3P
4
Arrival TimeBurst Time
0 7
1
2
3
60524436248
2012
403216
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(22/32)
ProcessArrivalTime
P
1
P
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Waiting Time
??????�??????�??????�??????�

5. Multilevel QueueScheduling
SchedulingAlgorithms
(22/32)
ProcessArrivalTime
P
1
P
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Waiting Time
??????�??????�??????�??????�
0
= �

5. Multilevel QueueScheduling
SchedulingAlgorithms
(22/32)
ProcessArrivalTime
P
1
P
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Waiting Time
??????�??????�??????�??????�
07 − 1
= �= �

5. Multilevel QueueScheduling
SchedulingAlgorithms
(22/32)
ProcessArrivalTime
P
1
P
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Waiting Time
??????�??????�??????�??????�
07 − 115 + 8 − 2
= �= �= ��

5. Multilevel QueueScheduling
SchedulingAlgorithms
(22/32)
ProcessArrivalTime
P
1
P
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Waiting Time
??????�??????�??????�??????�
07 − 115 + 8 − 223 + 12 + 8 − 3
= �= �= ��= ��

5. Multilevel QueueScheduling
SchedulingAlgorithms
(23/32)
Process
P
1 P
ArrivalTime
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Turnaround Time
??????�??????�??????�??????�

5. Multilevel QueueScheduling
SchedulingAlgorithms
(23/32)
Process
P
1 P
ArrivalTime
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Turnaround Time
??????�??????�??????�??????�
7 − 0
= �

5. Multilevel QueueScheduling
SchedulingAlgorithms
(23/32)
Process
P
1 P
ArrivalTime
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Turnaround Time
??????�??????�??????�??????�
7 − 067 − 1
= �= ��

5. Multilevel QueueScheduling
SchedulingAlgorithms
(23/32)
Process
P
1 P
ArrivalTime
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Turnaround Time
??????�??????�??????�??????�
7 − 067 − 143 − 2
= �= ��= ��

5. Multilevel QueueScheduling
SchedulingAlgorithms
(23/32)
Process
P
1 P
ArrivalTime
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Turnaround Time
??????�??????�??????�??????�
7 − 067 − 143 − 283 − 3
= �= ��= ��= ��

5. Multilevel QueueScheduling
SchedulingAlgorithms
(24/32)
Process
P
1 P
ArrivalTime
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Response Time
??????�??????�??????�??????�

5. Multilevel QueueScheduling
SchedulingAlgorithms
(24/32)
Process
P
1 P
ArrivalTime
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Response Time
??????�??????�??????�??????�
0 − 0
= �

5. Multilevel QueueScheduling
SchedulingAlgorithms
(24/32)
Process
P
1 P
ArrivalTime
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Response Time
??????�??????�??????�??????�
0 − 07 − 1
= �= �

5. Multilevel QueueScheduling
SchedulingAlgorithms
(24/32)
Process
P
1 P
ArrivalTime
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Response Time
??????�??????�??????�??????�
0 − 07 − 115 − 2
= �= �= ��

5. Multilevel QueueScheduling
SchedulingAlgorithms
(24/32)
Process
P
1 P
ArrivalTime
2
P
3
P
4
0
1
2
3
�1 �2
�
2
�0
�1
�2
�0
�1
�2
83ms
�3 �4
7ms 8ms
�2
�3
16ms
�4
12ms 16ms
36ms
�4
16ms
59ms67ms43ms7ms15ms23ms31ms
8ms 8ms
Response Time
??????�??????�??????�??????�
0 − 07 − 115 − 223 − 3
= �= �= ��= ��

SchedulingAlgorithms
(25/32)
5. Multilevel Queue Scheduling
Now we add the concepts of varying arrival times and preemption to the
analysis
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 60
P
3 2 20
P
4 3 40
Multilevel Queue Fixed priority
non-preemptive
Using single-core
processor

5. Multilevel QueueScheduling
SchedulingAlgorithms
(26/32)
�0
�1
�2
�0
�1
�2
1
ProcessArrival TimeBurst Time
P 0 7
P
2 1 60
P
3 2 20
P
4 3 40

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
�1
�0
�1
�2
7ms
1
ProcessArrival TimeBurst Time
P 0 7
P
2 1 60
P
3 2 20
P
4 3 40
7ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
�1
�0
�1
�2
7ms
1
ProcessArrival TimeBurst Time
P 0 7
P
2 1 60
P
3 2 20
P
4 3 40
7ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 6052
P
3 2 20
P
4 3 40
�
1�2
7ms8ms
15ms
7ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 6052
P
3 2 2012
P
4 3 40
7ms8ms
�
1�2�
3
15ms
7ms23ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
Process
P
1P
2
P
3P
4
Arrival TimeBurst Time
0 7
1
2
3
6052
2012
4032
�
1�2�
3�
4
15ms31ms
7ms23ms
7ms8ms8ms8ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
Process
P
1P
2
P
3P
4
Arrival TimeBurst Time
0 7
1
2
3
605236
2012
4032
7ms23ms
�
1�2�
3�
4
15ms31ms
7ms8ms8ms8ms
�2
16ms
47ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
Process
P
1P
2
P
3P
4 605236
2012
4032
7ms23ms
�
1�2�
3�
4
15ms31ms
7ms8ms8ms8ms
�2
16ms
47ms
�3
12ms
Arrival TimeBurst Time
0 7
1
2
3
59ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
Process
P
1P
2
P
3P
4 605236
2012
4032
7ms23ms
�
1�2�
3�
4
15ms31ms
7ms8ms8ms8ms
�2
16ms
47ms
�3
12ms
Arrival TimeBurst Time
0 7
1
2
3
59ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
Process
P
1P
2
P
3P
4 605236
2012
403216
7ms23ms
�
1�2�
3�
4
15ms31ms
7ms8ms8ms8ms
�2
16ms
47ms
�3
12ms
Arrival TimeBurst Time
0 7
1
2
3
59ms
�4
16ms
75ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
Process
P
1P
2
P
3P
4 605236
2012
403216
7ms23ms
�
1�2�
3�
4
15ms31ms
7ms8ms8ms8ms
�2
16ms
47ms
�3
12ms
Arrival TimeBurst Time
0 7
1
2
3
59ms
�4
16ms
75ms
�2
36ms
111ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
Process
P
1P
2
P
3P
4 605236
2012
403216
7ms23ms
�
1�2�
3�
4
15ms31ms
7ms8ms8ms8ms
�2
16ms
47ms
�3
12ms
Arrival TimeBurst Time
0 7
1
2
3
59ms
�4
16ms
75ms
�2
36ms
111ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
Process
P
1P
2
P
3P
4 605236
2012
403216
7ms23ms
�
1�2�
3�
4
15ms31ms
7ms8ms8ms8ms
�2
16ms
47ms
�3
12ms
Arrival TimeBurst Time
0 7
1
2
3
59ms
�4
16ms
75ms
�2
36ms
111ms127ms
�4
16ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(27/32)
�0
�1
�2
Process
P
1P
2
P
3P
4 605236
2012
403216
7ms23ms
�
1�2�
3�
4
15ms31ms
7ms8ms8ms8ms
�2
16ms
47ms
�3
12ms
Arrival TimeBurst Time
0 7
1
2
3
59ms
�4
16ms
75ms
�2
36ms
111ms127ms
�4
16ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(28/32)
ProcessArrival TimeBurst Time
P
1 0 7
P
2 1 605236
P
3 2 2012
P
4 3 403216
15ms
7ms23ms
�
1�2�
3�
4
31ms
7ms8ms8ms8ms
�2
16ms
47ms
�3
12ms
59ms
�4
16ms
75ms
�2
36ms
111ms127ms
�4
16ms

5. Multilevel QueueScheduling
SchedulingAlgorithms
(29/32)
ProcessArrival Time
P
1 0
P
2 1
P
3 2
P
4 3
15ms
7ms23ms
�
1�2�
3�
4
31ms
7ms8ms8ms8ms
�2
16ms
47ms
�3
12ms
59ms
�4
16ms
75ms
�2
36ms
111ms127ms
�4
16ms
Waiting Time
??????�??????�??????�??????�
0 6 + 16
+ 28
13 + 2420 + 28
+ 36
= �= ��= ��= ��

5. Multilevel QueueScheduling
SchedulingAlgorithms
(30/32)
ProcessArrival Time
P
1 0
P
2 1
P
3 2
P
4 3
15ms
7ms23ms
�
1�2�
3�
4
31ms
7ms8ms8ms8ms
�2
16ms
47ms
�3
12ms
59ms
�4
16ms
75ms
�2
36ms
111ms127ms
�4
16ms
Turnaround Time
??????�??????�??????�??????�
7 − 0 111 − 159 − 2127 − 3
= �= ���= ��= ���

5. Multilevel QueueScheduling
SchedulingAlgorithms
(31/32)
ProcessArrival Time
P
1 0
P
2 1
P
3 2
P
4 3
15ms
7ms23ms
�
1�2�
3�
4
31ms
7ms8ms8ms8ms
�2
16ms
47ms
�3
12ms
59ms
�4
16ms
75ms
�2
36ms
111ms127ms
�4
16ms
Response Time
??????�??????�??????�??????�
0 − 0 7 − 1 15 − 2 23 − 3
= �= �= ��= ��

SchedulingAlgorithms
(32/32)
Student Example:
Using a Multilevel Queue Scheduling algorithm in Fig.1. Consider the
following processes with the relative CPU bursts.
ProcessArrival TimeBurst Time
P
1 0 20
P
2 1 60
P
3 2 5
P
4 2 40
Multilevel Queue Fixed priority
non-preemptive
Fig.1