Chapter 5: CPU Scheduling: Silberschatz, Galvin and Gagne ©2018 Operating System Concepts - 10 Edition
Chapter 5: CPU Scheduling: Silberschatz, Galvin and Gagne ©2018 Operating System Concepts - 10 Edition
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Objectives
Operating System Concepts – 10th Edition 5.2 Silberschatz, Galvin and Gagne ©2018
Basic Concepts
Operating System Concepts – 10th Edition 5.3 Silberschatz, Galvin and Gagne ©2018
Basic Concepts
Operating System Concepts – 10th Edition 5.4 Silberschatz, Galvin and Gagne ©2018
Histogram of CPU-burst Times
Operating System Concepts – 10th Edition 5.5 Silberschatz, Galvin and Gagne ©2018
CPU Scheduler
***
3 1
Scheduling in 1 & 4 is non-preemptive
waiting
All other scheduling is preemptive
Operating System Concepts – 10th Edition 5.6 Silberschatz, Galvin and Gagne ©2018
Scheduling and Optimization Criteria
Operating System Concepts – 10th Edition 5.7 Silberschatz, Galvin and Gagne ©2018
Scheduling Criteria
Waiting time – amount of time a process has been waiting in the ready
queue
Operating System Concepts – 10th Edition 5.8 Silberschatz, Galvin and Gagne ©2018
Optimization Criteria
Maximize:
CPU utilization
Throughput
Minimize:
Turnaround time
Waiting time
Response time
Operating System Concepts – 10th Edition 5.9 Silberschatz, Galvin and Gagne ©2018
CPU Scheduling Algorithms
Operating System Concepts – 10th Edition 5.10 Silberschatz, Galvin and Gagne ©2018
CPU Scheduling Algorithms
Non-preemptive:
First-come, first-served (FCFS)
Shortest job first (SJF)
Priority
Preemptive:
Shortest remaining time first (SRTF)
Priority
Round robin
Operating System Concepts – 10th Edition 5.11 Silberschatz, Galvin and Gagne ©2018
First-Come, First-Served (FCFS)
P1 P2 P3
0 24 27 30
Operating System Concepts – 10th Edition 5.12 Silberschatz, Galvin and Gagne ©2018
FCFS (Cont.)
P2 P3 P1
0 3 6 30
Operating System Concepts – 10th Edition 5.13 Silberschatz, Galvin and Gagne ©2018
Shortest Job First (SJF)
Associate with each process the length of its next CPU burst
Use these lengths to schedule the process with the shortest
time
Operating System Concepts – 10th Edition 5.14 Silberschatz, Galvin and Gagne ©2018
Example of SJF
P4 P1 P3 P2
0 3 9 16 24
Operating System Concepts – 10th Edition 5.15 Silberschatz, Galvin and Gagne ©2018
Example of SJF
Operating System Concepts – 10th Edition 5.16 Silberschatz, Galvin and Gagne ©2018
Predicting the Next CPU Burst
Can only estimate the length – should be similar to the previous one
Then pick process with shortest predicted next CPU burst
Commonly, α set to ½
Operating System Concepts – 10th Edition 5.17 Silberschatz, Galvin and Gagne ©2018
Predicting the Next CPU Burst
Operating System Concepts – 10th Edition 5.18 Silberschatz, Galvin and Gagne ©2018
Shortest Remaining Time First (SRT)
P1 P2 P4 P1 P3
0 1 5 10 17 26
Operating System Concepts – 10th Edition 5.19 Silberschatz, Galvin and Gagne ©2018
Priority Scheduling
Operating System Concepts – 10th Edition 5.20 Silberschatz, Galvin and Gagne ©2018
Example of Priority Scheduling
Operating System Concepts – 10th Edition 5.21 Silberschatz, Galvin and Gagne ©2018
Example of Preemptive Priority
Scheduling
Operating System Concepts – 10th Edition 5.22 Silberschatz, Galvin and Gagne ©2018
Example of Preemptive Priority
Scheduling
Process AT
P1 1
P2 2
P3 7
P4 22
P5 23
Operating System Concepts – 10th Edition 5.23 Silberschatz, Galvin and Gagne ©2018
Round Robin (RR)
Each process gets a small unit of CPU time (time quantum q), 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 n processes in the ready queue and the time quantum is q,
then each process gets 1/n of the CPU time in chunks of at most q time
units at once. No process waits more than (n-1)q time units.
Performance
q large FIFO
q small q must be large with respect to context switch, otherwise
overhead is too high
Operating System Concepts – 10th Edition 5.24 Silberschatz, Galvin and Gagne ©2018
Example of RR with q = 4
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
Operating System Concepts – 10th Edition 5.25 Silberschatz, Galvin and Gagne ©2018
“q” & Context Switch Time
Operating System Concepts – 10th Edition 5.26 Silberschatz, Galvin and Gagne ©2018
Turnaround Time Varies with “q”
Operating System Concepts – 10th Edition 5.27 Silberschatz, Galvin and Gagne ©2018
Multilevel Queue
Ready queue is partitioned into separate queues, e.g.:
foreground (interactive)
background (batch)
Operating System Concepts – 10th Edition 5.28 Silberschatz, Galvin and Gagne ©2018
Multilevel Queue
Operating System Concepts – 10th Edition 5.29 Silberschatz, Galvin and Gagne ©2018
Multilevel Feedback Queue
Operating System Concepts – 10th Edition 5.30 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 5.31 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 5.32 Silberschatz, Galvin and Gagne ©2018
Thread Scheduling
Operating System Concepts – 10th Edition 5.33 Silberschatz, Galvin and Gagne ©2018
Thread Scheduling
Operating System Concepts – 10th Edition 5.34 Silberschatz, Galvin and Gagne ©2018
Multiple-Processor Scheduling
Operating System Concepts – 10th Edition 5.35 Silberschatz, Galvin and Gagne ©2018
Multiple-Processor (MP) Scheduling
CPU scheduling is 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 – 10th Edition 5.36 Silberschatz, Galvin and Gagne ©2018
MP Scheduling – Load Balancing
Pull migration – idle processors pulls waiting task from busy processor
Operating System Concepts – 10th Edition 5.37 Silberschatz, Galvin and Gagne ©2018
Multicore Processors
Operating System Concepts – 10th Edition 5.38 Silberschatz, Galvin and Gagne ©2018
Multithreaded Multicore System
Operating System Concepts – 10th Edition 5.39 Silberschatz, Galvin and Gagne ©2018
Real-Time CPU Scheduling
Operating System Concepts – 10th Edition 5.40 Silberschatz, Galvin and Gagne ©2018
Real-Time CPU Scheduling
Operating System Concepts – 10th Edition 5.41 Silberschatz, Galvin and Gagne ©2018
Real-Time CPU Scheduling (Cont.)
Rate-Montonic Scheduling
Operating System Concepts – 10th Edition 5.42 Silberschatz, Galvin and Gagne ©2018
Missed Deadlines with
Rate-Monotonic Scheduling
Operating System Concepts – 10th Edition 5.43 Silberschatz, Galvin and Gagne ©2018
Real-Time CPU Scheduling (Cont.)
Operating System Concepts – 10th Edition 5.44 Silberschatz, Galvin and Gagne ©2018
Real-Time CPU Scheduling (Cont.)
Operating System Concepts – 10th Edition 5.45 Silberschatz, Galvin and Gagne ©2018
Evaluation of Scheduling Algorithms
Operating System Concepts – 10th Edition 5.46 Silberschatz, Galvin and Gagne ©2018
Algorithm Evaluation
How to select CPU-scheduling algorithm for an OS?
Deterministic modeling
Type of analytic evaluation
Takes a particular predetermined workload and defines the
performance of each algorithm for that workload
Operating System Concepts – 10th Edition 5.47 Silberschatz, Galvin and Gagne ©2018
Deterministic Evaluation
FCS is 28ms:
RR is 23ms:
Operating System Concepts – 10th Edition 5.48 Silberschatz, Galvin and Gagne ©2018
Queueing Models
Operating System Concepts – 10th Edition 5.49 Silberschatz, Galvin and Gagne ©2018
Little’s Formula
Operating System Concepts – 10th Edition 5.50 Silberschatz, Galvin and Gagne ©2018
Simulations
Operating System Concepts – 10th Edition 5.51 Silberschatz, Galvin and Gagne ©2018
Simulations (Cont.)
Operating System Concepts – 10th Edition 5.52 Silberschatz, Galvin and Gagne ©2018
Implementation
Operating System Concepts – 10th Edition 5.53 Silberschatz, Galvin and Gagne ©2018
End of Chapter 5
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018