Uniprocessor Scheduling PDF
Uniprocessor Scheduling PDF
Chapter 9
Uniprocessor Scheduling
Dave Bremer
Otago Polytechnic, N.Z.
2008, Prentice Hall
Roadmap
Types of Processor Scheduling
Scheduling Algorithms
Traditional UNIX Scheduling
Scheduling
An OS must allocate resources amongst
competing processes.
The resource provided by a processor is
execution time
The resource is allocated by means of a
schedule
Overall Aim
of Scheduling
The aim of processor scheduling is to
assign processes to be executed by the
processor over time,
in a way that meets system objectives, such
as response time, throughput, and processor
efficiency.
Scheduling Objectives
The scheduling function should
Share time fairly among processes
Prevent starvation of a process
Use the processor efficiently
Have low overhead
Prioritise processes when necessary (e.g. real
time deadlines)
Types of Scheduling
Scheduling and
Process State Transitions
Nesting of
Scheduling Functions
Queuing Diagram
Long-Term Scheduling
Determines which programs are admitted
to the system for processing
May be first-come-first-served
Or according to criteria such as priority, I/O
requirements or expected execution time
Medium-Term
Scheduling
Part of the swapping function
Swapping-in decisions are based on the
need to manage the degree of
multiprogramming
Short-Term Scheduling
Known as the dispatcher
Executes most frequently
Invoked when an event occurs
Clock interrupts
I/O interrupts
Operating system calls
Signals
Roadmap
Types of Processor Scheduling
Scheduling Algorithms
Traditional UNIX Scheduling
Aim of Short
Term Scheduling
Main objective is to allocate processor
time to optimize certain aspects of system
behaviour.
A set of criteria is needed to evaluate the
scheduling policy.
Short-Term Scheduling
Criteria: User vs System
We can differentiate between user and
system criteria
User-oriented
Response Time
Elapsed time between the submission of a request
until there is output.
System-oriented
Effective and efficient utilization of the
processor
Short-Term Scheduling
Criteria: Performance
We could differentiate between
performance related criteria, and those
unrelated to performance
Performance-related
Quantitative, easily measured
E.g. response time and throughput
Non-performance related
Qualitative
Hard to measure
Interdependent
Scheduling Criteria
Interdependent
Scheduling Criteria cont.
Priorities
Scheduler will always choose a process of
higher priority over one of lower priority
Have multiple ready queues to represent
each level of priority
Priority Queuing
Starvation
Problem:
Lower-priority may suffer starvation if there is
a steady supply of high priority processes.
Solution
Allow a process to change its priority based
on its age or execution history
Alternative Scheduling
Policies
Selection Function
Determines which process is selected for
execution
If based on execution characteristics then
important quantities are:
w = time spent in system so far, waiting
e = time spent in execution so far
s = total service time required by the process,
including e;
Decision Mode
Specifies the instants in time at which the
selection function is exercised.
Two categories:
Nonpreemptive
Preemptive
Nonpreemptive vs
Premeptive
Non-preemptive
Once a process is in the running state, it will
continue until it terminates or blocks itself for
I/O
Preemptive
Currently running process may be interrupted
and moved to ready state by the OS
Preemption may occur when new process
arrives, on an interrupt, or periodically.
Process Scheduling
Example
Example set of
processes,
consider each a
batch job
First-ComeFirst-Served
Each process joins the Ready queue
When the current process ceases to
execute, the longest process in the Ready
queue is selected
First-ComeFirst-Served
A short process may have to wait a very
long time before it can execute
Favors CPU-bound processes
I/O processes have to wait until CPU-bound
process completes
Round Robin
Uses preemption based on a clock
also known as time slicing, because each
process is given a slice of time before being
preempted.
Round Robin
Clock interrupt is generated at periodic
intervals
When an interrupt occurs, the currently
running process is placed in the ready
queue
Next ready job is selected
Effect of Size of
Preemption Time Quantum
Effect of Size of
Preemption Time Quantum
Calculating
Program Burst
Where:
Ti = processor execution
time for the ith instance of
this process
Si = predicted value for
the ith instance
S1 = predicted value for
first instance; not
calculated
Exponential Averaging
A common technique for predicting a
future value on the basis of a time series
of past values is exponential averaging
Exponential Smoothing
Coefficients
Use Of Exponential
Averaging
Use Of
Exponential Averaging
Shortest Remaining
Time
Preemptive version of shortest process
next policy
Must estimate processing time and choose
the shortest
Highest Response
Ratio Next
Choose next process with the greatest
ratio
Feedback Scheduling
Penalize jobs that
have been running
longer
Dont know
remaining time
process needs to
execute
Feedback Performance
Variations exist, simple version pre-empts
periodically, similar to round robin
But can lead to starvation
Performance
Comparison
Any scheduling discipline that chooses the
next item to be served independent of
service time obeys the relationship:
Formulas
Overall Normalized
Response Time
Normalized Response
Time for Shorter Process
Normalized Response
Time for Longer Processes
Normalized
Turnaround Time
Fair-Share Scheduling
Users application runs as a collection of
processes (threads)
User is concerned about the performance
of the application
Need to make scheduling decisions based
on process sets
Fair-Share Scheduler
Roadmap
Types of Processor Scheduling
Scheduling Algorithms
Traditional UNIX Scheduling
Traditional UNIX
Scheduling
Multilevel feedback using round robin
within each of the priority queues
If a running process does not block or
complete within 1 second, it is preempted
Priority is based on process type and
execution history.
Scheduling Formula
Bands
Priorities are recomputed once per second
Base priority divides all processes into
fixed bands of priority levels
Swapper (highest)
Block I/O device control
File manipulation
Character I/O device control
User processes (lowest)
Example of Traditional
UNIX Process Scheduling