Cpu Scheduling
Cpu Scheduling
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
Chapter 6: CPU Scheduling
Basic Concepts
Scheduling Criteria
Scheduling Algorithms
Thread Scheduling
Multiple-Processor
Scheduling
Operating Systems
Examples
Operating System Concepts – 9th Edition 6.2 Silberschatz, Galvin and Gagne ©2013
Objectives
CPU scheduling is the basis for multi-programmed operating
systems
Process Scheduling
By switching among processes (see Chap-3)
– Increases productivity of computer
Thread Scheduling
By switching among kernel threads (see Chap-4)
To System
Operating examine
Concepts the
th scheduling algorithms
– 9 Edition 6.3 of several operating
Silberschatz, Galvin and Gagne ©2013
Basic Concepts
Objective of multiprogramming:
Achieve maximum CPU utilization as
possible
CPU always running a process
No idle CPU
Operating System Concepts – 9th Edition 6.4 Silberschatz, Galvin and Gagne ©2013
Histogram of CPU-burst Times
Operating System Concepts – 9th Edition 6.5 Silberschatz, Galvin and Gagne ©2013
Diagram of Process State
Operating System Concepts – 9th Edition 6.6 Silberschatz, Galvin and Gagne ©2013
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: FIFO, LIFO, Random,
Priority, … etc
Jobs
Operating System Concepts – 9th Edition 6.8 Silberschatz, Galvin and Gagne ©2013
Dispatcher
Dispatcher module gives control of the CPU to the process selected by
the short- term scheduler; this involves:
Switching context
Dispatch latency – time it takes for the dispatcher to stop one process
and start another running
P1 24
P2 3
P3 3
The Gantt Chart for the schedule is: [includes start and finish time of
each process]
P1 P2 P3
0 24 27 30
0 3 6 30
Associate with each process the length of its next CPU burst
Use these lengths to schedule the process with the shortest time
Always assign the CPU to the process that has the smallest next CPU
burst
FCFS breaks the tie if two process have the same next CPU burst
length
SJF is optimal – gives minimum average waiting time for a given set of
processes
Could ask users to estimate their processes’ time limits; for job
scheduling
Operating System Concepts – 9 Edition
th 6.13 Silberschatz, Galvin and Gagne ©2013
Example of SJF
Process Burst
Time
P1 6
P2 8
P3 7
P4 3
SJF scheduling
chart
P4 P1 P3 P2
0 3 9 16 24
Moving a short process before a long one decreases its waiting time
more than it increases the long process’s waiting time. Thus, decrease
of average waiting time
Operating System Concepts – 9th Edition 6.14 Silberschatz, Galvin and Gagne ©2013
Determining Length of Next CPU Burst
SJF algo cannot be implemented at the level of the short-term CPU
scheduling
No way to know exact length of process’s next CPU burst
Estimate it using lengths of past bursts: next = average of all past
bursts
Then pick process with shortest predicted next CPU burst
Relative weight of recent history (tn) and past history (τn): α = ½ usual
but in [0, 1]
Preemptive
Operating System Concepts version
th – 9 Edition called shortest-remaining-time-first
6.15 (SRTF Galvin and Gagne ©2013
Silberschatz,
Prediction of the Length of the Next CPU Burst
Operating System Concepts – 9th Edition 6.16 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
0 1 5 1 1 2
0 7 6
Problem Starvation – some low priority process may never get the
CPU
Operating System Concepts – 9th Edition 6.19 Silberschatz, Galvin and Gagne ©2013
Example of Priority Scheduling
Process Burst Time Priorit
y
P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2
Priority scheduling Gantt
Chart
P1 P2 P1 P3 P4
0 1 6 16 18 19
Operating System Concepts – 9th Edition 6.20 Silberschatz, Galvin and Gagne ©2013
Round Robin (RR)
Each process gets a small unit of CPU time (time quantum or time
slice 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.
P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 2 2 3
18 2 6 0
q usually
Operating between
System Concepts
th– 9 Edition 10ms to 100ms,
6.22 context switch < 10
Silberschatz, Galvin and Gagne ©2013
Time Quantum and Context Switch Time
Operating System Concepts – 9th Edition 6.23 Silberschatz, Galvin and Gagne ©2013
Turnaround Time Varies With The Time Quantum
Operating System Concepts – 9th Edition 6.24 Silberschatz, Galvin and Gagne ©2013
Multilevel Queue
Ready queue is partitioned into separate queues; e.g., two queues
containing
foreground (interactive) processes
May have externally defined priority over background processes
background (batch) processes
Each queue has its own scheduling need, and hence, different
algorithm:
foreground – RR or …
background – FCFS or …
Operating System Concepts – 9th Edition 6.26 Silberschatz, Galvin and Gagne ©2013
Multilevel Feedback Queue
A process can move between the queues; aging can be
implemented this way
number of queues
Scheduling
Conflict phase of
dispatch latency:
1. Preemption of any
process
running in kernel
mode
2. Release by low-
priority processes of
resources needed by
a high-priority
process
Operating System Concepts – 9th Edition 6.31 Silberschatz, Galvin and Gagne ©2013
Priority-Based Scheduling
Real-time OS responds immediately to a real-time process when it
request CPU
Real-time scheduler must support preemptive priority-based
algorithm
But only guarantees soft real-time functionality
Hard real-time systems must also provide ability to meet task
deadlines
Periodic processes require CPU at constant intervals
– Each process has a processing time t, a deadline d, and a period p
– 0≤t≤d≤p
– Rate of periodic task is 1/p
Admission-control: process announces it requirements, then scheduler
admits the process if it can complete it on time, or, reject it if it cannot
serviced it by deadline
Operating System Concepts – 9th Edition 6.32 Silberschatz, Galvin and Gagne ©2013
Rate-Monotonic Scheduling
Static priority policy with preemption
A priority is assigned to a process based on the inverse of its
period p
Shorter periods = higher priority; Longer periods = lower
priority
Assumes processing time t is the same for each CPU burst
Rationale: higher priority to tasks that require the CPU more
often
Example:
Process P1 : t1 = 20, d1 = complete CPU burst by start of next period, p1
= 50.
Process P2 : t2 = 35, d2 = complete CPU burst by start of next period, p2
= 100.
P1 is assigned a higher priority than P2.
CPU utilization = ti / pi. Thus total CPU utilization = 20/50 + 35/100
= 75%
Operating System Concepts – 9th Edition 6.33 Silberschatz, Galvin and Gagne ©2013
Missed Deadlines with Rate-Monotonic Scheduling
Operating System Concepts – 9th Edition 6.34 Silberschatz, Galvin and Gagne ©2013
Earliest Deadline First Scheduling (EDF)
Dynamic priority policy with preemption
Priorities are dynamically assigned according to deadlines:
Earlier deadline = higher priority; later deadline = lower priority
New runnable process must announce its deadline requirements to
scheduler
Scheduler will adjust current priorities accordingly
Process need not be periodic
CPU burst time need not be constant
Operating System Concepts – 9th Edition 6.35 Silberschatz, Galvin and Gagne ©2013
Proportional Share Scheduling
T shares of time are allocated among all processes in the system
Thus A will have 50% of total processor times, and so on with B and
C
Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013
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.38 Silberschatz, Galvin and Gagne ©2013
NUMA and CPU Scheduling
Operating System Concepts – 9th Edition 6.39 Silberschatz, Galvin and Gagne ©2013
Multiple-Processor Scheduling – Load Balancing
Operating System Concepts – 9th Edition 6.40 Silberschatz, Galvin and Gagne ©2013
Multicore Processors
Operating System Concepts – 9th Edition 6.41 Silberschatz, Galvin and Gagne ©2013
Multithreaded Multicore System
Operating System Concepts – 9th Edition 6.42 Silberschatz, Galvin and Gagne ©2013
Virtualization and Scheduling
Virtualization software schedules multiple
guests onto CPU(s)
Each guest doing its own scheduling
Not knowing it doesn’t own the CPUs
Can result in poor response time
Can effect time-of-day clocks in guests
Can undo good scheduling algorithm efforts of
guests
Operating System Concepts – 9th Edition 6.43 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 6.44 Silberschatz, Galvin and Gagne ©2013
Deterministic Evaluation
Non-preemptive SFJ is
13ms:
RR is
23ms:
Operating System Concepts – 9th Edition 6.45 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 6.46 Silberschatz, Galvin and Gagne ©2013
Little’s
n = average queue length
Formula
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 – 9th Edition 6.47 Silberschatz, Galvin and Gagne ©2013
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 – 9th Edition 6.48 Silberschatz, Galvin and Gagne ©2013
Evaluation of CPU Schedulers by Simulation
Operating System Concepts – 9th Edition 6.49 Silberschatz, Galvin and Gagne ©2013
Implementation
Even simulations have limited accuracy
Just implement new scheduler and test in real systems
High cost, high risk
Environments vary
Most flexible schedulers can be modified per-site or
per-system
Or APIs to modify priorities
But again environments vary
Operating System Concepts – 9th Edition 6.50 Silberschatz, Galvin and Gagne ©2013