Cpu Scheduling
Cpu Scheduling
Operating System Concepts – 9th Edition 6.2 Silberschatz, Galvin and Gagne
Basic Concepts
Operating System Concepts – 9th Edition 6.3 Silberschatz, Galvin and Gagne
CPU Scheduler
Short-term scheduler selects from among the processes
in ready queue, and allocates the CPU to one of them
Queue may be ordered in various ways
CPU scheduling decisions may take place when a
process:
1. Switches from running to waiting state
2. Switches from running to ready state
3. Switches from waiting to ready
4. Terminates
Scheduling under 1 and 4 is nonpreemptive
All other scheduling is preemptive
Consider access to shared data
Consider preemption while in kernel mode
Consider interrupts occurring during crucial OS
activities
Operating System Concepts – 9th Edition 6.4 Silberschatz, Galvin and Gagne
Dispatcher
Operating System Concepts – 9th Edition 6.5 Silberschatz, Galvin and Gagne
Scheduling Criteria
Operating System Concepts – 9th Edition 6.6 Silberschatz, Galvin and Gagne
Scheduling Algorithm Optimization Criteria
Operating System Concepts – 9th Edition 6.7 Silberschatz, Galvin and Gagne
FCFS SCHEDULING
Operating System Concepts – 9th Edition 6.8 Silberschatz, Galvin and Gagne
First- Come, First-Served (FCFS) Scheduling
Operating System Concepts – 9th Edition 6.9 Silberschatz, Galvin and Gagne
proces Arrival Burst Completio Turnaround Waiting
s time time n time time=CT-AT time=(TAT- BT
)
P1 0 4 4 4 0
P2 1 3 7 6 3
p3 2 1 8 6 5
P4 3 2 10 7 5
p5 4 5 15 11 6
AVG AVG
TAT=34/5=6 WT=20/5=4
.8
P1 p2 p3 p4 p5
0 4 7 8 10 15
Operating System Concepts – 9th Edition 6.10 Silberschatz, Galvin and Gagne
proces Arrival Burst Completio Turnaround Waiting
s time time n time time=CT-AT time=(TAT- BT
)
P1 0 4 4 4 0
P2 1 3 7 6 3
p3 2 1 8 6 5
P4 3 2 10 7 5
p5 4 5 15 11 6
AVG AVG
TAT=34/5=6 WT=19/5=3.8
.8
P1 P2 P3 P4 p5
0 4 7 8 10 15
Operating System Concepts – 9th Edition 6.11 Silberschatz, Galvin and Gagne
P1 P2
0 2 5 15 20 25 30 35 40 45
Operating System Concepts – 9th Edition 6.12 Silberschatz, Galvin and Gagne
FCFS Scheduling (Cont.)
Suppose that the processes arrive in the order:
P2 , P3 , P1
The Gantt chart for the schedule is:
P2 P3 P1
0 3 6 30
Operating System Concepts – 9th Edition 6.13 Silberschatz, Galvin and Gagne
Shortest-Job-First (SJF) Scheduling
Operating System Concepts – 9th Edition 6.14 Silberschatz, Galvin and Gagne
Example of SJF
P4 P1 P3 P2
0 3 9 16 24
Operating System Concepts – 9th Edition 6.15 Silberschatz, Galvin and Gagne
completion time=
Turnaround time= completion time- arrival Time
Waiting time = turnaround time- burst Time
Operating System Concepts – 9th Edition 6.16 Silberschatz, Galvin and Gagne
proces Arrival Burst Completio Turnaround Waiting
s time time n time time=CT-AT time=(TAT- BT
)
P1 0 8 8 0
P2 1 4 11 7
p3 2 9 24 15
P4 3 5 14 9
P1 p2 P4 P3
0 8 12 17 26
Operating System Concepts – 9th Edition 6.17 Silberschatz, Galvin and Gagne
SJF
Arrival
Process Id
time
Burst time CT TAT WT
P1 3 1
P2 1 4
P3 4 2
P4 0 6
P5 2 3
Operating System Concepts – 9th Edition 6.18 Silberschatz, Galvin and Gagne
Example of Shortest-remaining-time-first
P1 P2 P4 P1 P3
0 1 5 10 17 26
Operating System Concepts – 9th Edition 6.19 Silberschatz, Galvin and Gagne
proces Arrival Burst Completio Turnaround Waiting
s time time n time time=CT-AT time=(TAT- BT
)
P1 0 8
P2 1 4
p3 2 9
P4 3 5
Total
Operating System Concepts – 9th Edition 6.20 Silberschatz, Galvin and Gagne
proces Arrival Burst Completio Turnaround Waiting
s time time n time time=CT-AT time=(TAT- BT
)
P1 0 8 17 17 9
P2 1 4 5 4 0
p3 2 9 26 24 15
P4 3 5 10 7 2
Total 52 26
P1 P2 P4 P1 P3
0 1 5 10 17 26
Operating System Concepts – 9th Edition 6.21 Silberschatz, Galvin and Gagne
SRTF
PROCES At BT
S
P1 0 5
P2 1 3
P3 2 4
P4 4 1
Operating System Concepts – 9th Edition 6.22 Silberschatz, Galvin and Gagne
Priority Scheduling
Operating System Concepts – 9th Edition 6.23 Silberschatz, Galvin and Gagne
10 6 2
Operating System Concepts – 9th Edition 6.24 Silberschatz, Galvin and Gagne
Example of Priority Scheduling
Operating System Concepts – 9th Edition 6.25 Silberschatz, Galvin and Gagne
proces Burst Priorit Completio Turnaround Waiting
s time y n time time=CT-AT time=(TAT- BT
)
P1 10 3 16 16 6
P2 1 1 1 1 0
p3 2 4 18 18 16
P4 1 5 19 19 18
P5 5 2 6 6 1
Operating System Concepts – 9th Edition 6.26 Silberschatz, Galvin and Gagne
proce Arriv Burst Priori Completi Turnaroun Waiting
ss al time ty on time d time=(TAT-
Time time=CT- BT )
AT
P1 0 4 2
P2 1 3 3
p3 2 1 4
P4 3 5 5
P5 4 2 5
P2 P5 P1 P3 P4
0 1 6 16 18 19
Operating System Concepts – 9th Edition 6.27 Silberschatz, Galvin and Gagne
Round Robin (RR)
Operating System Concepts – 9th Edition 6.28 Silberschatz, Galvin and Gagne
Example of RR with Time Quantum = 4
Process Burst Time
P1 24
P2 3
P3 3
The Gantt chart is:
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
Operating System Concepts – 9th Edition 6.29 Silberschatz, Galvin and Gagne
Process ID Arrival Time
Q=4
Burst Time
MS
Completion
Time
Turn Around
Time
Waiting
Time
1 0 5 17 17 12
2 1 6 23 22 16
3 2 3 11 9 6
4 3 1 12 9 8
5 4 5 24 20 15
6 6 4 21 15 11
Ready queue
P1,P2 P3 P4 P5 P1 P6 P2 P5
P1 P2 P3 P4 P5 P1 P6 P2 P5
0 4 8 11 12 16 17 21 23 24
Operating System Concepts – 9th Edition 6.30 Silberschatz, Galvin and Gagne
Operating System Concepts – 9th Edition 6.31 Silberschatz, Galvin and Gagne
Process ID Arrival Time Burst Time Completion Turn Around Waiting
Time Time Time
1 0 5 17 17 12
2 1 6 23 22 16
3 2 3 11 9 6
4 3 1 12 9 8
5 4 5 24 20 15
6 6 4 21 15 11
Operating System Concepts – 9th Edition 6.32 Silberschatz, Galvin and Gagne
Process ID Arrival Time Burst Time Completion Turn Around Waiting
Time Time Time
1 0 5
2 1 3
3 2 1
4 3 2
5 4 3
Ready queue P1
P1
Operating System Concepts – 9th Edition 6.33 Silberschatz, Galvin and Gagne
Q=2
0 5
1 3
2 1
3 2
4 3
Ready queue P1
P1
Operating System Concepts – 9th Edition 6.34 Silberschatz, Galvin and Gagne
Q=2
1 0 4
2 1 5
3 2 2
4 3 1
5 4 6
6 6 3
Ready queue P1
P1
Operating System Concepts – 9th Edition 6.35 Silberschatz, Galvin and Gagne
Multilevel Queue
Ready queue is partitioned into separate queues, eg:
foreground (interactive)
background (batch)
Process permanently in a given queue
Each queue has its own scheduling algorithm:
foreground – RR
background – FCFS
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
Operating System Concepts – 9th Edition 6.36 Silberschatz, Galvin and Gagne
Multilevel Queue Scheduling
Operating System Concepts – 9th Edition 6.37 Silberschatz, Galvin and Gagne
Multilevel Feedback Queue
Operating System Concepts – 9th Edition 6.38 Silberschatz, Galvin and Gagne
Example of Multilevel Feedback Queue
Three queues:
Q0 – RR with time quantum 8
milliseconds
Q1 – RR time quantum 16 milliseconds
Q2 – FCFS
Scheduling
A new job enters queue Q0 which is
served FCFS
When it gains CPU, job receives 8
milliseconds
If it does not finish in 8
milliseconds, job is moved to
queue Q1
At Q1 job is again served FCFS and
receives 16 additional milliseconds
If it still does not complete, it is
preempted and moved to queue Q2
Operating System Concepts – 9th Edition 6.39 Silberschatz, Galvin and Gagne
Multiple-Processor Scheduling
CPU scheduling more complex when multiple CPUs
are available
Homogeneous processors within a multiprocessor
Asymmetric multiprocessing – only one processor
accesses the system data structures, alleviating the
need for data sharing
Symmetric multiprocessing (SMP) – each processor is
self-scheduling, all processes in common ready queue,
or each has its own private queue of ready processes
Currently, most common
Processor affinity – process has affinity for processor
on which it is currently running
soft affinity
hard affinity
Variations including processor sets
Operating System Concepts – 9th Edition 6.40 Silberschatz, Galvin and Gagne
NUMA and CPU Scheduling
Operating System Concepts – 9th Edition 6.41 Silberschatz, Galvin and Gagne
Multiple-Processor Scheduling – Load Balancing
Operating System Concepts – 9th Edition 6.42 Silberschatz, Galvin and Gagne
Multicore Processors
Operating System Concepts – 9th Edition 6.43 Silberschatz, Galvin and Gagne