Chapter 5a: CPU Scheduling: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition
Chapter 5a: CPU Scheduling: Silberschatz, Galvin and Gagne ©2013 Operating System Concepts - 9 Edition
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 5a: CPU Scheduling
Basic Concepts
Scheduling Criteria
Scheduling Algorithms
Thread Scheduling
Multiple-Processor Scheduling
Real-Time CPU Scheduling
Operating Systems Examples
Algorithm Evaluation
Operating System Concepts – 9th Edition 5.2 Silberschatz, Galvin and Gagne ©2013
Objectives
Operating System Concepts – 9th Edition 5.3 Silberschatz, Galvin and Gagne ©2013
Basic Concepts
Operating System Concepts – 9th Edition 5.4 Silberschatz, Galvin and Gagne ©2013
Histogram of CPU-burst Times
Operating System Concepts – 9th Edition 5.5 Silberschatz, Galvin and Gagne ©2013
CPU Scheduler
Whenever the CPU becomes idle, the operating system must
select one of the processes in the ready queue to be executed.
The selection process is carried out by the CPU scheduler.
The ready queue may be ordered in various ways.
CPU scheduling decisions may take place when a process:
1. Switches from running state to waiting state
2. Switches from running state to ready state
3. Switches from waiting state to ready state
4. When a process terminates
For situations 1 and 4, there is no choice in terms of scheduling.
A new process (if one exists in the ready queue) must be
selected for execution.
There is a choice, however, for situations 2 and 3.
Operating System Concepts – 9th Edition 5.6 Silberschatz, Galvin and Gagne ©2013
Nonpreemptive Scheduling
When scheduling takes place only under
circumstances 1 and 4.
Under nonpreemptive scheduling, once the CPU has
been allocated to a process, the process keeps the
CPU until it releases the CPU either by terminating or
by switching to the waiting state.
Operating System Concepts – 9th Edition 5.7 Silberschatz, Galvin and Gagne ©2013
Preemptive scheduling
When scheduling takes place only under circumstances 2
and 3
Preemptive scheduling can result in race conditions when
data are shared among several processes.
Consider the case of two processes that share data.
While one process is updating the data, it is preempted
so that the second process can run. The second process
then tries to read the data, which are in an inconsistent
state.
Consider preemption while in kernel mode
Consider interrupts occurring during crucial OS activities
Virtually all modern operating systems including Windows,
Mac OS X, Linux, and UNIX use preemptive scheduling
algorithms.
Operating System Concepts – 9th Edition 5.8 Silberschatz, Galvin and Gagne ©2013
Dispatcher
Operating System Concepts – 9th Edition 5.9 Silberschatz, Galvin and Gagne ©2013
Scheduling Criteria
Operating System Concepts – 9th Edition 5.10 Silberschatz, Galvin and Gagne ©2013
Optimization Criteria for Scheduling
Operating System Concepts – 9th Edition 5.11 Silberschatz, Galvin and Gagne ©2013
Scheduling Algorithm
Operating System Concepts – 9th Edition 5.12 Silberschatz, Galvin and Gagne ©2013
First- Come, First-Served (FCFS) Scheduling
P1 P2 P3
0 24 27 30
Operating System Concepts – 9th Edition 5.13 Silberschatz, Galvin and Gagne ©2013
FCFS Scheduling (Cont.)
P2 P3 P1
0 3 6 30
Operating System Concepts – 9th Edition 5.14 Silberschatz, Galvin and Gagne ©2013
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
SJF is optimal – gives minimum average waiting time for a
given set of processes
How do we know what is the length of the next CPU
request
Could ask the user
what if the user lies?
Operating System Concepts – 9th Edition 5.15 Silberschatz, Galvin and Gagne ©2013
Example of SJF
P4 P1 P3 P2
0 3 9 16 24
Operating System Concepts – 9th Edition 5.16 Silberschatz, Galvin and Gagne ©2013
Determining Length of Next CPU Burst
Commonly, α set to ½
Operating System Concepts – 9th Edition 5.17 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 5.18 Silberschatz, Galvin and Gagne ©2013
Prediction of the Length of the Next CPU Burst
Operating System Concepts – 9th Edition 5.19 Silberschatz, Galvin and Gagne ©2013
Shortest-remaining-time-first
Preemptive version of SJF is called shortest-remaining-time-first
Example illustrating the concepts of varying arrival times and
preemption.
ProcessAarri Arrival TimeT Burst Time
P1 0 8
P2 1 4
P3 2 9
P4 3 5
Preemptive SJF Gantt Chart
P1 P2 P4 P1 P3
0 1 5 10 17 26
Operating System Concepts – 9th Edition 5.20 Silberschatz, Galvin and Gagne ©2013
Round Robin (RR)
Each process gets a small unit of CPU time (time quantum q).
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.
Timer interrupts every quantum to schedule next process
Performance
q large FIFO
q small q must be large with respect to context switch,
otherwise overhead is too high
Operating System Concepts – 9th Edition 5.21 Silberschatz, Galvin and Gagne ©2013
Example of RR with Time Quantum = 4
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30
Operating System Concepts – 9th Edition 5.22 Silberschatz, Galvin and Gagne ©2013
Time Quantum and Context Switch Time
Operating System Concepts – 9th Edition 5.23 Silberschatz, Galvin and Gagne ©2013
Turnaround Time Varies With The Time Quantum
Operating System Concepts – 9th Edition 5.24 Silberschatz, Galvin and Gagne ©2013
Priority Scheduling
Operating System Concepts – 9th Edition 5.25 Silberschatz, Galvin and Gagne ©2013
Example of Priority Scheduling
Consider the following five processes and their burst time
P1 P2 P1 P3 P4
0 1 6 16 18 19
Operating System Concepts – 9th Edition 5.26 Silberschatz, Galvin and Gagne ©2013
Combining Priority Scheduling and RR
Operating System Concepts – 9th Edition 5.27 Silberschatz, Galvin and Gagne ©2013
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 5.28 Silberschatz, Galvin and Gagne ©2013
Separate Queue For Each Priority
Operating System Concepts – 9th Edition 5.29 Silberschatz, Galvin and Gagne ©2013
Multilevel Queue Scheduling
Operating System Concepts – 9th Edition 5.30 Silberschatz, Galvin and Gagne ©2013
Multilevel Feedback Queue
Operating System Concepts – 9th Edition 5.31 Silberschatz, Galvin and Gagne ©2013
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 5.32 Silberschatz, Galvin and Gagne ©2013
End of Chapter 5a
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013