Module 6: CPU Scheduling

Download Report

Transcript Module 6: CPU Scheduling

Chapter 5: CPU Scheduling
Operating System Concepts with Java – 8th Edition
5.1
Silberschatz, Galvin and Gagne ©2009
Announcements
 Mid-term exam – Next Tuesday (10/08)
 In-class, closed book, one cheat sheet
allowed
 What topics are included – everything that
we cover until tomorrows class
 Thursday – brief review session
Operating System Concepts with Java – 8th Edition
5.2
Silberschatz, Galvin and Gagne ©2009
Scheduling Criteria
 CPU utilization – %age of time CPU is busy
 Throughput – # of processes that complete their
execution per time unit
 Turnaround time – amount of time to execute a
particular process
 Waiting time – amount of time a process has been
waiting in the ready queue
 Response time – amount of time it takes from when
a request was submitted until the first response is
produced, not output (for time-sharing environment)
Operating System Concepts with Java – 8th Edition
5.3
Silberschatz, Galvin and Gagne ©2009
Scheduling Algorithm Optimization Criteria
 Max CPU utilization
 Max throughput
 Min turnaround time
 Min waiting time
 Min response time
Operating System Concepts with Java – 8th Edition
5.4
Silberschatz, Galvin and Gagne ©2009
First-Come, First-Served (FCFS) Scheduling
 Schedule according to processes arrival time
Process
Burst Time
P1
P2
P3
24
3
3
 Suppose that the processes arrive in the order: P1 , P2 , P3
The Gantt Chart for the schedule is:
P1
P2
0
24
P3
27
30
 Waiting time for P1 = 0; P2 = 24; P3 = 27
 Average waiting time: (0 + 24 + 27)/3 = 17
Operating System Concepts with Java – 8th Edition
5.5
Silberschatz, Galvin and Gagne ©2009
FCFS Scheduling (Cont.)
Suppose that the processes arrive in the order:
P2 , P3 , P1
 The Gantt chart for the schedule is:
P2
0
P3
3
P1
6
30
 Waiting time for P1 = 6; P2 = 0; P3 = 3
 Average waiting time: (6 + 0 + 3)/3 = 3
 Drawback-1: Drastic variations in wait times
 Drawback-2: Convoy effect
 FCFS is non-preemptive
Operating System Concepts with Java – 8th Edition
5.6
Silberschatz, Galvin and Gagne ©2009
Shortest-Job-First (SJF) Scheduling
 Associates each process with the length of its next CPU burst

Use these lengths to schedule the process with the shortest
CPU burst time
 Shortest-next-CPU-Burst algorithm
 SJF is optimal – gives minimum average waiting time for a
given set of processes
 The difficulty is knowing the length of the next CPU request

Long-term job schedulers utilize user-specified process time
limit

Users are motivated to accurately estimate job durations
 Cannot be implemented in a short-term scheduler

Estimation-based strategy
Operating System Concepts with Java – 8th Edition
5.7
Silberschatz, Galvin and Gagne ©2009
Example of SJF
Process
Arrival Time
Burst Time
P1
0.0
6
P2
2.0
8
P3
4.0
7
P4
5.0
3
 SJF scheduling chart
P1
P4
0
3
P3
9
P2
16
24
 Average waiting time = (3 + 16 + 9 + 0) / 4 = 7
Operating System Concepts with Java – 8th Edition
5.8
Silberschatz, Galvin and Gagne ©2009
Estimating Length of Next CPU Burst
 Use previous data from previous CPU bursts to estimate the
next burst
 Can be done by using the length of previous CPU bursts, using
exponential averaging
1. t n  actual length of n th CPU burst
2.  n 1  predicted value for the next CPU burst
3.  , 0    1
 n 1   t n  1    n .
4. Define :
Operating System Concepts with Java – 8th Edition
5.9
Silberschatz, Galvin and Gagne ©2009
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
 Since both  and (1 - ) are less than or equal to 1, each
successive term has less weight than its predecessor
Operating System Concepts with Java – 8th Edition
5.10
Silberschatz, Galvin and Gagne ©2009
Prediction of the Length of the Next CPU Burst
Operating System Concepts with Java – 8th Edition
5.11
Silberschatz, Galvin and Gagne ©2009
Pre-emptive and Non-Preemptive SJF
 What happens if a process with shorter CPU burst arrives at the
ready queue when previous process still running?
 Non-preemptive lets the current job complete before scheduling
the shortest one next
 Pre-emptive may interrupt the current job
 Shortest-remaining-time-first scheduling
 Current job will be interrupted only if the remaining time of at
least one process on ready queue is less than the remaining
time of the current process
Process
AT
BT
P1
0
8
P2
1
4
P3
2
9
P4
3
5
Operating System Concepts with Java – 8th Edition
5.12
Silberschatz, Galvin and Gagne ©2009
Priority Scheduling
 A priority number (integer) is associated with each
process
 The CPU is allocated to the process with the highest
priority (smallest integer  highest priority in this text
book)
 SJF is a priority scheduling where priority is the
predicted next CPU burst time
 Preemptive
 Non-preemptive
 Problem  Starvation – low priority processes may never execute
 Solution  Aging – as time progresses increase the priority of the
process
Operating System Concepts with Java – 8th Edition
5.13
Silberschatz, Galvin and Gagne ©2009
Priority Scheduling (Contd.)
 Example
Process
BT
Priority
P1
10
3
P2
1
1
P3
2
4
P4
1
5
5
2
P5
 Priority may be internally or externally specified
 Problem  Starvation – low priority processes may
never execute
 Solution  Aging – as time progresses increase the
priority of the process
Operating System Concepts with Java – 8th Edition
5.14
Silberschatz, Galvin and Gagne ©2009
Round Robin (RR)
 Designed for time-sharing systems
 FCFS with pre-emption
 Each process gets a small unit of CPU time called
time quantum
 Processes pre-empted at the end of time quantum
 New processes added to tail of ready queue
 CPU executes process at the head of the queue
 On preemption, process added to the tail
Operating System Concepts with Java – 8th Edition
5.15
Silberschatz, Galvin and Gagne ©2009
Example of RR with Time Quantum = 4
Process
P1
Burst Time
24
P2
P3
3
3
 The Gantt chart is:
P1
0
P2
4
P3
7
P1
10
P1
14
P1
18 22
P1
26
P1
30
 Average wait time is 17/3 milliseconds
 Typically, higher average turnaround than SJF, but better response
Operating System Concepts with Java – 8th Edition
5.16
Silberschatz, Galvin and Gagne ©2009
Round Robin (Contd.)
 If there are n processes and the time quantum is q, 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.
 Performance depends heavily on time quantum duration

q large  FIFO

q small  Processor sharing appearance of each
process having its own processor (was used in CDC
hardware)

In general, having too small quantum duration is bad –
why?

Context-switch time should be small fraction of quantum
duration
 Turn-around time also depends upon time-quantum duration

Does not monotonically improve as quantum increases
Operating System Concepts with Java – 8th Edition
5.17
Silberschatz, Galvin and Gagne ©2009
Time Quantum and Context Switch Time
Operating System Concepts with Java – 8th Edition
5.18
Silberschatz, Galvin and Gagne ©2009
Turnaround Time Varies With
The Time Quantum
Operating System Concepts with Java – 8th Edition
5.19
Silberschatz, Galvin and Gagne ©2009
Multilevel Queue
 Crafted for situations with multiple job categories
(e.g., interactive and batch processes running on the
same machine
 Ready queue is partitioned into separate queues:

Foreground (interactive)

Background (batch)
 Jobs permanently assigned to one of the queues
 Each queue has its own scheduling algorithm

foreground – RR

background – FCFS
Operating System Concepts with Java – 8th Edition
5.20
Silberschatz, Galvin and Gagne ©2009
Multilevel Queue Scheduling
Operating System Concepts with Java – 8th Edition
5.21
Silberschatz, Galvin and Gagne ©2009
Multilevel Queue (Contd.)
 Scheduling must be also done between the queues
 Fixed priority scheduling

No process from lower priority queue is executed unless all
higher priority queues are empty

Possibility of Starvation
 Time slice – each queue gets a certain amount of
CPU time which it can schedule amongst its
processes

80% to foreground in RR

20% to background in FCFS
Operating System Concepts with Java – 8th Edition
5.22
Silberschatz, Galvin and Gagne ©2009
Multilevel Feedback Queue
 In multi-level queues jobs are permanently assigned
to queues

Simple but inflexible
 MFQ allows processes to move between queues
 Process using too much CPU time will move to a
lower priority queue
 Process waiting for too long in a lower priority queue
can be promoted

Aging to prevent starvation
Operating System Concepts with Java – 8th Edition
5.23
Silberschatz, Galvin and Gagne ©2009
Multilevel Feedback Queues
Operating System Concepts with Java – 8th Edition
5.24
Silberschatz, Galvin and Gagne ©2009
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 with Java – 8th Edition
5.25
Silberschatz, Galvin and Gagne ©2009
Multilevel Feedback Queue (Contd.)
 Multilevel-feedback-queue scheduler defined by the
following parameters:

number of queues

scheduling algorithms for each queue

method used to determine when to upgrade a process

method used to determine when to demote a process

method used to determine which queue a process will
enter when that process needs service
Operating System Concepts with Java – 8th Edition
5.26
Silberschatz, Galvin and Gagne ©2009
Multiple-Processor Scheduling
 CPU scheduling more complex when multiple CPUs
are available
 Homogeneous processors within a multiprocessor
 Asymmetric multiprocessing

Scheduling decisions and I/O processing handled by a
single processor

Simple because it alleviates the need for data sharing
 Symmetric multiprocessing

each processor is self-scheduling

all processes can be in common ready queue, or each can
have its own private queue of ready processes

Need for synchronization
Operating System Concepts with Java – 8th Edition
5.27
Silberschatz, Galvin and Gagne ©2009
Multiple-Processor Scheduling Issues
 Processor Affinity
 Load Balancing
 Scheduling on Multi-Cores
Operating System Concepts with Java – 8th Edition
5.28
Silberschatz, Galvin and Gagne ©2009
Processor Affinity
 Migrating processes from one processor to another is
expensive

Data caching at processors

Needs invalidation and repopulation
 Processor affinity – process has affinity for processor on
which it is currently running
 Soft affinity

Attempt to keep process on same machine – no guarantees
 Hard affinity

Processes can specify that they should not be migrated

Most Oses provide this option
Operating System Concepts with Java – 8th Edition
5.29
Silberschatz, Galvin and Gagne ©2009
NUMA and CPU Scheduling
 CPUs have faster access to certain parts of memory
 Memory allocation on the same board where a process has affinity
 Requires memory allocation and scheduler to work in tandem
Operating System Concepts with Java – 8th Edition
5.30
Silberschatz, Galvin and Gagne ©2009
Load Balancing
 Important to keep the workload balanced
 Load imbalances can reduce throughput of the system

Some processors might be overloaded whereas others may sit idle
 Load balancing typically needed on machines with private run
queues
 Push Migration

Dedicated task checks for loads and re-distributes
 Pull Migration

Idle processors “pull” tasks from overloaded processors
 Tension between processor affinity and load balancing
Operating System Concepts with Java – 8th Edition
5.31
Silberschatz, Galvin and Gagne ©2009
Virtualization and Scheduling
 Host OS and Guest OSes
 Virtualization software presents virtual CPUs to guest OSes
 Physical CPU is multiplexed among guest Oses
 Scheduling algorithms that assume certain amount of
progress in certain amount of time will be affected by
virtualization
 A process of guest OS might not get 100ms of CPU time
although the guest OS allocated 100ms of CPU time
 Virtualization may counteract scheduling algorithm benefits
Operating System Concepts with Java – 8th Edition
5.32
Silberschatz, Galvin and Gagne ©2009