Professional Documents
Culture Documents
CPU Scheduling
Operating System Concepts Essentials – 2nd Edition Silberschatz, Galvin and Gagne
Basic Concepts
Operating System Concepts Essentials – 2nd Edition 3.2 Silberschatz, Galvin and Gagne
Histogram of CPU-burst Times
Operating System Concepts Essentials – 2nd Edition 3.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 Essentials – 2nd Edition 3.4 Silberschatz, Galvin and Gagne
Dispatcher
Operating System Concepts Essentials – 2nd Edition 3.5 Silberschatz, Galvin and Gagne
Scheduling Criteria
Operating System Concepts Essentials – 2nd Edition 3.6 Silberschatz, Galvin and Gagne
Scheduling Algorithm Optimization Criteria
Operating System Concepts Essentials – 2nd Edition 3.7 Silberschatz, Galvin and Gagne
First- Come, First-Served (FCFS) Scheduling
P1 P2 P3
0 24 27 30
Operating System Concepts Essentials – 2nd Edition 3.8 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 Essentials – 2nd Edition 3.9 Silberschatz, Galvin and Gagne
Example
Operating System Concepts Essentials – 2nd Edition 3.10 Silberschatz, Galvin and Gagne
Shortest-Job-First (SJF) Scheduling
Operating System Concepts Essentials – 2nd Edition 3.11 Silberschatz, Galvin and Gagne
Example of SJF (Non-preemptive)
P4 P1 P3 P2
0 3 9 16 24
Operating System Concepts Essentials – 2nd Edition 3.12 Silberschatz, Galvin and Gagne
Example of Nonpreemptive SJF
0 3 7 8 12 16
Operating System Concepts Essentials – 2nd Edition 3.13 Silberschatz, Galvin and Gagne
Example of Preemptive SJF
0 2 4 5 7 11 16
Operating System Concepts Essentials – 2nd Edition 3.14 Silberschatz, Galvin and Gagne
Determining Length of Next CPU Burst
Commonly, α set to ½
Preemptive version called shortest-remaining-time-
first
Operating System Concepts Essentials – 2nd Edition 3.15 Silberschatz, Galvin and Gagne
Prediction of the Length of the Next CPU Burst
Operating System Concepts Essentials – 2nd Edition 3.16 Silberschatz, Galvin and Gagne
Examples of Exponential Averaging
=0
n+1 = n
Recent history does not count
=1
n+1 = tn
Only the actual last CPU burst counts
If we expand the formula, we get:
n+1 = tn+(1 - ) tn -1 +…
+(1 - )j tn -j + …
+(1 - )n +1 0
Operating System Concepts Essentials – 2nd Edition 3.17 Silberschatz, Galvin and Gagne
Example of Shortest-remaining-time-first
P1 P2 P4 P1 P3
0 1 5 10 17 26
Operating System Concepts Essentials – 2nd Edition 3.18 Silberschatz, Galvin and Gagne
Example
Draw a Gantt chart that shows the completion times for each
process using shortest-job first (preemptive) CPU scheduling
and compute the average waiting time?
Operating System Concepts Essentials – 2nd Edition 3.19 Silberschatz, Galvin and Gagne
Priority Scheduling
Operating System Concepts Essentials – 2nd Edition 3.20 Silberschatz, Galvin and Gagne
Example of Priority Scheduling
P2 P5 P1 P3 P4
0 1 6 16 18 19
Operating System Concepts Essentials – 2nd Edition 3.21 Silberschatz, Galvin and Gagne
Operating System Concepts Essentials – 2nd Edition 3.22 Silberschatz, Galvin and Gagne
Round Robin (RR)
Operating System Concepts Essentials – 2nd Edition 3.23 Silberschatz, Galvin and Gagne
Example of RR
Process Burst Time
P1 24
P2 3
P3 3
Round Robin, quantum=4, no priority-based
preemption
TheP GanttP chart
1
P is:
2 3
P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
Operating System Concepts Essentials – 2nd Edition 3.24 Silberschatz, Galvin and Gagne
Time Quantum and Context Switch Time
Operating System Concepts Essentials – 2nd Edition 3.25 Silberschatz, Galvin and Gagne
Turnaround Time Varies With The Time Quantum
Operating System Concepts Essentials – 2nd Edition 3.26 Silberschatz, Galvin and Gagne
Example of RR with Arrival Time
Process Arrival Burst Time
P1 0 3
P2 1 5
P3 3 4
Round Robin, quantum=2
The Gantt chart is:
P1 p2 p3 p1 p2 p3 p2
0 2 4 6 7 9 11 12
Operating System Concepts Essentials – 2nd Edition 3.27 Silberschatz, Galvin and Gagne
Example of RR
Consider the following processes with arrival time and burst
time. Calculate average turnaround time, average waiting
time and average response time using round robin with time
quantum 3?
Proces Arrival Burst
s id time time
P1 5 5
P2 4 6
P3 3 7
P4 1 9
P5 2 2
P6 6 3
Solution:
Operating System Concepts Essentials – 2nd Edition 3.28 Silberschatz, Galvin and Gagne
Cont.
P1 5 5 32 27 22 10
P2 4 6 27 23 17 5
P3 3 7 33 30 23 3
P4 1 9 30 29 20 0
P5 2 2 6 4 2 2
P6 6 3 21 15 12 12
Operating System Concepts Essentials – 2nd Edition 3.29 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 Essentials – 2nd Edition 3.30 Silberschatz, Galvin and Gagne
Multilevel Queue Scheduling
Operating System Concepts Essentials – 2nd Edition 3.31 Silberschatz, Galvin and Gagne
Multilevel Feedback Queue
Operating System Concepts Essentials – 2nd Edition 3.32 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 Essentials – 2nd Edition 3.33 Silberschatz, Galvin and Gagne
Algorithm Evaluation
How to select CPU-scheduling algorithm for an OS?
Determine criteria, then evaluate algorithms
Deterministic modeling
Type of analytic evaluation
Takes a particular predetermined workload and
defines the performance of each algorithm for that
workload
Consider 5 processes arriving at time 0:
Operating System Concepts Essentials – 2nd Edition 3.34 Silberschatz, Galvin and Gagne
Deterministic Evaluation
RR is 23ms:
Operating System Concepts Essentials – 2nd Edition 3.35 Silberschatz, Galvin and Gagne
Queueing Models
Describes the arrival of processes, and CPU and I/O
bursts probabilistically
Commonly exponential, and described by mean
Computes average throughput, utilization,
waiting time, etc
Computer system described as network of servers,
each with queue of waiting processes
Knowing arrival rates and service rates
Computes utilization, average queue length,
average wait time, etc
Operating System Concepts Essentials – 2nd Edition 3.36 Silberschatz, Galvin and Gagne
Little’s Formula
n = average queue length
W = average waiting time in queue
λ = average arrival rate into queue
Little’s law – in steady state, processes leaving
queue must equal processes arriving, thus:
n=λxW
Valid for any scheduling algorithm and arrival
distribution
For example, if on average 7 processes arrive per
second, and normally 14 processes in queue, then
average wait time per process = 2 seconds
Operating System Concepts Essentials – 2nd Edition 3.37 Silberschatz, Galvin and Gagne
Simulations
Queueing models limited
Simulations more accurate
Programmed model of computer system
Clock is a variable
Gather statistics indicating algorithm performance
Data to drive simulation gathered via
Random number generator according to probabilities
Distributions defined mathematically or empirically
Trace tapes record sequences of real events in real
systems
Operating System Concepts Essentials – 2nd Edition 3.38 Silberschatz, Galvin and Gagne
Evaluation of CPU Schedulers by Simulation
Operating System Concepts Essentials – 2nd Edition 3.39 Silberschatz, Galvin and Gagne
End of Chapter 6
Operating System Concepts Essentials – 2nd Edition Silberschatz, Galvin and Gagne