Chapter 5
Process Scheduling
CPU Scheduling
Objective:
Basic Scheduling Concepts
CPU Scheduling Algorithms
Why Multiprogramming?
Maximize CPU/Resources Utilization (Based on Some Criteria)
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
CPU Scheduling
Process Execution
CPU-bound programs tend to have a few very long CPU bursts.
IO-bound programs tend to have many very short CPU bursts.
CPU-Burst
I/O-Burst New
Terminate
CPU Scheduling
The distribution can help in selecting an appropriate CPU-scheduling
algorithms
20 60 100 120
8 16 24
Burst Duration (ms)
frequency
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
CPU Scheduling
CPU Scheduler – The Selection of Process for Execution
A short-term scheduler New
Ready Running
Terminated
Waiting dispatched
CPU Scheduling
Nonpreemptive Scheduling
A running process keeps CPU until it volunteers to release CPU
E.g., I/O or termination
Advantage
Easy to implement (at the cost of service response to other processes)
E.g., Windows 3.1
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
CPU Scheduling
Preemptive Scheduling
Beside the instances for non-preemptive scheduling, CPU scheduling occurs
whenever some process becomes
ready or the running process leaves the running state!
Issues involved:
Protection of Resources, such as I/O queues or shared data, especially for multiprocessor or real-time systems.
Synchronization
E.g., Interrupts and System calls
CPU Scheduling
Dispatcher
Functionality:
Switching context
Switching to user mode
Restarting a user program
Dispatch Latency:
Start a process Must be fast
Stop a process
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Scheduling Criteria
Why?
Different scheduling algorithms may favor one class of processes over another!
Criteria
CPU Utilization
Throughput
Turnaround Time: CompletionT-StartT
Waiting Time: Waiting in the ReadyQ
Response Time: FirstResponseTime
Scheduling Criteria
How to Measure the Performance of CPU Scheduling Algorithms?
Optimization of what?
General Consideration
Average Measure
Minimum or Maximum Values
Variance Æ Predictable Behavior
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Scheduling Algorithms
First-Come, First-Served Scheduling (FIFO)
Shortest-Job-First Scheduling (SJF)
Priority Scheduling
Round-Robin Scheduling (RR)
Multilevel Queue Scheduling
Multilevel Feedback Queue Scheduling
Multiple-Processor Scheduling
First-Come, First-Served Scheduling (FCFS)
The process which requests the CPU first is allocated the CPU
Properties:
Non-preemptive scheduling
CPU might be hold for an extended period.
CPU request
A FIFO ready queue dispatched
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
First-Come, First-Served Scheduling (FCFS)
Example
Process P1 P2 P3
CPU Burst Time 24
3 3
P1 P2 P3
0 24 27 30
Average waiting time
= (0+24+27)/3 = 17
P2 P3 P1
0 3 6 30
Average waiting time
= (6+0+3)/3 = 3
*The average waiting time is highly affected by process CPU burst times !
Gantt Chart
Example: Convoy Effect
One CPU-bound process + many I/O-bound
processes
First-Come, First-Served Scheduling (FCFS)
CPU
ready queue
ready queue
I/O device
idle
All other processes wait for it to get off the CPU!
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Shortest-Job-First Scheduling (SJF)
Non-Preemptive SJF
Shortest next CPU burst first
process P1 P2 P3 P4
CPU burst time 6
8 7 3
P4 P1 P3 P2
0 3 9 16 24
Average waiting time
= (3+16+9+0)/4 = 7
Shortest-Job-First Scheduling (SJF)
Nonpreemptive SJF is optimal when processes are all ready at time 0
The minimum average waiting time!
Prediction of the next CPU burst time?
Long-Term Scheduler
A specified amount at its submission time
Short-Term Scheduler
Exponential average (0<=
α
<=1)τ
n+1= α t
n+ (1-α) τ
n* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Shortest-Job-First Scheduling (SJF)
Preemptive SJF
Shortest-remaining-time-first Process
P1 P2 P3 P4
CPU Burst Time 8
4 9 5
Arrival Time 0
1 2 3
P1 P2 P4 P1 P3
0 1 5 10 17 26
Average Waiting Time = ((10-1) + (1-1) + (17-2) + (5-3))/4 = 26/4
= 6.5
Shortest-Job-First Scheduling (SJF)
Preemptive or Non-preemptive?
Criteria such as AWT (Average Waiting Time)
0 10
1 10 11
Non-preemptive AWT = (0+(10-1))/2
= 9/2 = 4.5
or
0 1 2
11 Preemptive AWT
= ((2-1)+0) = 0.5
* Context switching cost ~ modeling & analysis
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Priority Scheduling
CPU is assigned to the process with the highest priority – A
framework for various scheduling algorithms:
FCFS: Equal-Priority with Tie- Breaking by FCFS
SFJ: Priority = 1 / next CPU burst length
Priority Scheduling
Process P1 P2 P3 P4 P5
CPU Burst Time 10
1 2 1 5
Priority 3 1 3 4 2 Gantt Graph
P2 P5 P1 P3 P4
0 1 6 16 18 19
Average waiting time
= (6+0+16+18+1)/5 = 8.2
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Priority Scheduling
Priority Assignment
Internally defined – use some
measurable quantity, such as the # of open files,
Externally defined – set by criteria external to the OS, such as the criticality levels of jobs.
Average CPU Burst Average I/O Burst
Priority Scheduling
Preemptive or Non-Preemptive?
Preemptive scheduling – CPU scheduling is invoked whenever a process arrives at the ready queue, or the running process relinquishes the CPU.
Non-preemptive scheduling – CPU scheduling is invoked only when the running process relinquishes the CPU.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Priority Scheduling
Major Problem
Indefinite Blocking (/Starvation)
Low-priority processes could starve to death!
A Solution: Aging
A technique that increases the priority of processes waiting in the system for a long time.
Round-Robin Scheduling (RR)
RR is similar to FCFS except that
preemption is added to switch between processes.
Goal: Fairness – Time Sharing
ready running
Interrupt at every time quantum (time slice)
FIFO…
CPU
The quantum is used up!
New process
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Round-Robin Scheduling (RR)
Process P1 P2 P3
CPU Burst Time 24
3 3
Time slice = 4
P1 P2 P3 P1 P1 P1 P1 P1 0 4 7 10 14 18 22 26 30
AWT = ((10-4) + (4-0) + (7-0))/3
= 17/3 = 5.66
Round-Robin Scheduling (RR)
Service Size and Interval
Time quantum = q Æ Service interval <= (n- 1)*q if n processes are ready.
IF q = ∞, then RR Æ FCFS.
IF q = ε, then RR Æ processor sharing. The
# of context switchings increases!
0 10
0 6 10
0 10
process quantum 12
6 1
context switch # 0
1 9
If context switch cost
time quantum = 10% => 1/11 of CPU is wasted!
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Round-Robin Scheduling (RR)
Turnaround Time
0 10 20 30
0 10 20 30
0 10 20 30
process (10ms) P1
P2
P3 20 30
10 20
0 10
quantum = 10 quantum = 1
Average Turnaround Time
= (10+20+30)/3 = 20
ATT = (28+29+30)/3 = 29
=> 80% CPU Burst < time slice
Multilevel Queue Scheduling
Partition the ready queue into several separate queues =>
Processes can be classified into different groups and permanently assigned to one queue.
…
System Processes Interactive Processes
Batch Processes
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Multilevel Queue Scheduling
Intra-queue scheduling
Independent choice of scheduling algorithms.
Inter-queue scheduling
a. Fixed-priority preemptive scheduling
a. e.g., foreground queues always have absolute priority over the background queues.
b. Time slice between queues
a. e.g., 80% CPU is given to foreground processes, and 20% CPU to background processes.
c. More??
Multilevel Feedback Queue Scheduling
Different from Multilevel Queue
Scheduling by Allowing Processes to Migrate Among Queues.
Configurable Parameters:
a. # of queues
b. The scheduling algorithm for each queue c. The method to determine when to upgrade a
process to a higher priority queue.
d. The method to determine when to demote a process to a lower priority queue.
e. The method to determine which queue a newly ready process will enter.
*Inter-queue scheduling: Fixed-priority preemptive?!
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Multilevel Feedback Queue Scheduling
Example
quantum = 8
quantum = 16
FCFS
*Idea: Separate processes with different CPU-burst characteristics!
Multiple-Processor Scheduling
CPU scheduling in a system with multiple CPUs
A Homogeneous System
Processes are identical in terms of their functionality.
Î Can processes run on any processor?
A Heterogeneous System
Programs must be compiled for instructions on proper processors.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Multiple-Processor Scheduling
Load Sharing – Load Balancing!!
A queue for each processor
Self-Scheduling – Symmetric Multiprocessing
A common ready queue for all processors.
Self-Scheduling
Need synchronization to access common data structure, e.g., queues.
Master-Slave – Asymmetric Multiprocessing
One processor accesses the system structures Æ no need for data sharing
Multiple-Processor Scheduling
Load Balancing
Push migration: A specific task periodically checks for imbalance and migrate tasks
Pull migration: An idle processor pulls a waiting task from a busy processor
Linux and FreeBSD do both!
Processor Affinity
The system might avoid process migration because of the cost in invalidating or re- populating caches
Soft or hard affinity
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Multiple-Processor Scheduling
Symmetric Multithreading (SMT), i.e., Hyperthreading
A feature provided by the hardware
Several logical processors per physical processor
Each has its own architecture state, including registers.
Issues: Process Synchronization
Multiple-Processor Scheduling – SMT
time
unused issue slot occupied issue slot
SMT Superscalar
Utilization++
Utilization++
Throughput++
Throughput++
Performance++
Performance++
: 13 : 10 : 11
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Thread Scheduling
Two Scopes:
Process Contention Scope (PCS): m:1 or m:m
Priority-Driven
System-Contention Scope (SCS): 1:1
Pthread Scheduling
PCS and SCS
Pthread_attr_setscope(pthread_attr_t *attr, int scope) Pthread_attr_getscope(pthread_attr_t *attr, int *scope)
Operating System Examples
Process Local Scheduling
E.g., those for user-level threads
Thread scheduling is done locally to each application.
System Global Scheduling
E.g., those for kernel-level threads
The kernel decides which thread to run.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Operating System Examples – Solaris
Priority-Based Process Scheduling
Real-Time
System
Kernel-service processes
Time-Sharing
A default class
Interactive
Each LWP inherits its class from its parent process
low
Operating System Examples – Solaris
Real-Time
A guaranteed response
System
The priorities of system processes are fixed.
Time-Sharing
Multilevel feedback queue scheduling – priorities inversely proportional to time slices
Interactive
Prefer windowing process
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Operating System Examples – Solaris
59 49
20 59
58 45
40 55
58 40
40 50
56 35
40 45
55 30
40 40
54 25
80 35
53 20
80 30
52 15
120 25
52 10
120 20
51 5
160 15
51 0
160 10
50 0
200 5
50 0
200 0
Return from sleep Time quantum exp.
Time quantum priority
Interactive and time sharing threads
low
high
Operating System Examples – Solaris
The selected thread runs until one of the following occurs:
It blocks.
It uses its time slice (if it is not a system thread).
It is preempted by a higher-priority thread.
RR is used when several threads
have the same priority.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Operating System Examples – Solaris
Two New Classes in Solaris 9
Fixed Priority
Non-adjusted priorities in the range of the time-sharing class
Fair Sharing
CPU shares, instead of priorities
Operating System Examples – Windows XP
Priority-Based Preemptive Scheduling
Priority Class/Relationship: 0..31
Dispatcher: A process runs until
It is preempted by a higher-priority process.
It terminates
Its time quantum ends
It calls a blocking system call
Idle thread
A queue per priority level
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Operating System Examples – Windows XP
Each thread has a base priority that
represents a value in the priority range of its class.
A typical class – Normal_Priority_Class
Time quantum – thread
Increased after some waiting
Different for I/O devices.
Decreased after some computation
The priority is never lowered below the base priority.
Favor foreground processes (more time quantum)
Operating System Examples – Windows XP
1 1
1 1
1
Idle 16
2 4
6 8
11
Lowest 22
3 5
7 9
12
Below 23
normal
4 6
8 10
13
Normal 24
5 7
9 11
14
Above 25
normal
6 8
10 12
15
Highest 26
15 15
15 15
15
Time- 31
critical
Idle priority Below
normal Normal
Above normal High
Real- time
Variable Class (1..15) Real-Time Class
Base Priority
A Typical Class
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Operating System Examples – Linux Ver. 2.5+
Scheduling Algorithm
O(1)
SMP, load balancing, and processor affinity
Fairness and support for interactive tasks
Priorities
Real-time: 0..99
Nice: 100..140
Nemeric Priority
Time Quantum
0 . . 99 100
. . . 140
200ms . . . . . . . . 10ms
Real Time Tasks Other Tasks
Operating System Examples – Linux Ver. 2.5+
Each processor has a runqueue
An active array and an expired array
Switching of the two arrays when all processes in the active array have their quantum expired.
Priority-Driven Scheduling
Fixed Priority – Real-Time
Dynamic Priority – nice ± x, for x <= 5
Interactive tasks are favored.
The dynamic priority of a task is recalculated when its quantum is expired.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Algorithm Evaluation
A General Procedure
Select criteria that may include several measures, e.g., maximize CPU
utilization while confining the maximum response time to 1 second
Evaluate various algorithms
Evaluation Methods:
Deterministic modeling
Queuing models
Simulation
Implementation
Deterministic Modeling
A Typical Type of Analytic Evaluation
Take a particular predetermined workload and defines the performance of each
algorithm for that workload
Properties
Simple and fast
Through excessive executions of a number of examples, trends might be identified
But it needs exact numbers for inputs, and its answers only apply to those cases
Being too specific and requires too exact knowledge to be useful!
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Deterministic Modeling
process P1 P2 P3 P4 P5
CPU Burst time 10
29 3 7 12
P3 P5 P2
0 3 10 20 61
P4 P1
32
Nonpreemptive Shortest Job First
P1 P2
0 10 20 40 50 61
P2
23
P4 P5 30
P2 P5 52
Round Robin (quantum =10)
P1
0 10 39 42 49 61
FCFC
Average Waiting Time (AWT)=(0+10+39+42+49)/5=28
AWT=(10+32+0+3+20)/5=13
AWT=(0+(10+20+2)+20+23+(30+10))/5=23
P2 P3 P4 P5
P3
Queueing Models
Motivation:
Workloads vary, and there is no static set of processes
Models (~ Queueing-Network Analysis)
Workload:
a. Arrival rate: the distribution of times when processes arrive.
b. The distributions of CPU & I/O bursts
Service rate
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Queueing Models
Model a computer system as a network of servers. Each server has a queue of waiting processes
Compute average queue length, waiting time, and so on.
Properties:
Generally useful but with limited
application to the classes of algorithms &
distributions
Assumptions are made to make
problems solvable => inaccurate results
Queueing Models
Example: Little’s formula
n = # of processes in the queue λ = arrival rate
ω = average waiting time in the queue
If n =14 & λ =7 processes/sec, then w = 2 seconds.
w n = λ ∗
λ
w steady state!λ
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Simulation
Motivation:
Get a more accurate evaluation.
Procedures:
Program a model of the computer system
Drive the simulation with various data sets
Randomly generated according to some probability distributions
=> inaccuracy occurs because of only the
occurrence frequency of events. Miss the order &
the relationships of events.
Trace tapes: monitor the real system &
record the sequence of actual events.
Simulation
Properties:
Accurate results can be gotten, but it could be expensive in terms of
computation time and storage space.
The coding, design, and debugging of a simulator can be a big job.
* All rights reserved, Tei-Wei Kuo, National Taiwan University, 2005.
Implementation
Motivation:
Get more accurate results than a simulation!
Procedure:
Code scheduling algorithms
Put them in the OS
Evaluate the real behaviors
Implementation
Difficulties:
Cost in coding algorithms and modifying the OS
Reaction of users to a constantly changing the OS
The environment in which algorithms are used will change
For example, users may adjust their behaviors according to the selected algorithms
=> Separation of the policy and mechanism!