Title: Emery Berger
1Operating SystemsCMPSCI 377Lecture 6 Scheduling
- Emery Berger
- University of Massachusetts, Amherst
2Last Time Threads Scheduling
- Thread execution stream within process
- User-level, kernel-level, hybrid
- Theres no perfect scheduling algorithm!
- Competing goals
- Minimize response time
- Maximize throughput
- Fairness
- Policy decision
3This Time Scheduling Algorithms
- FCFS
- First-Come, First-Served
- Round-robin
- SJF
- Multilevel Feedback Queues
- Lottery Scheduling
4Round-Robin Scheduling
- Quantum expires move to back of queue
- Variants used in most real systems
- Quantum length
- Large response time increases
- quantum ) 1 FCFS
- Small throughput decreases
- quantum ) 0 overhead dominates
- context switches, cache misses
5Example Round-Robin
6Example Round-Robin
7Example Round-Robin
8Example Round-Robin
9Example Round-Robin
10Example Round-Robin
11Example Round-Robin
12Example Round-Robin
13Example Round-Robin
14Example Round-Robin
15Example Round-Robin
- Fair
- Long average wait times
16Round-Robin vs. FCFS
- Example 1
- 5 jobs, 100 seconds each, quantum 1s
- ignore context switch time
17Round-Robin vs. FCFS
- Example 1
- 5 jobs, 100 seconds each, quantum 1s
- ignore context switch time
18Round-Robin vs. FCFS
- Example 2
- 5 jobs 50, 40, 30, 20, 10 seconds each
19Round-Robin vs. FCFS
- Example 2
- 5 jobs 50, 40, 30, 20, 10 seconds each
20This Time Scheduling Algorithms
- FCFS
- First-Come, First-Served
- Round-robin
- SJF
- Multilevel Feedback Queues
- Lottery Scheduling
21Example SJF
10
20
30
40
50
- Schedule job with least work until I/O or done
22Example SJF
10
20
30
40
50
- Schedule job with least work until I/O or done
23Example SJF
10
20
30
40
50
- Schedule job with least work until I/O or done
24Example SJF
10
20
30
40
50
- Schedule job with least work until I/O or done
25Example SJF
10
20
30
40
50
- Schedule job with least work until I/O or done
26Example SJF
10
20
30
40
50
- Schedule job with least work until I/O or done
27Example SJF
- 5 jobs, length 50, 40, 30, 20, 10 seconds
28Example SJF
- 5 jobs, length 50, 40, 30, 20, 10 seconds
29SJF/SRTF Shortest-Job First
- Advantages
- Optimal minimizes average waiting time
- Works for preemptive non-preemptive schedulers
- Preemptive SJF SRTF
- Shortest remaining time first
- I/O-bound jobs get priority over CPU-bound jobs
- Disadvantages
- Impossible to predict CPU time job has left
- Long-running CPU-bound jobs can starve
30This Time Scheduling Algorithms
- FCFS
- First-Come, First-Served
- Round-robin
- SJF
- Multilevel Feedback Queues
- Lottery Scheduling
31Multilevel Feedback Queues (MLFQ)
- Use past behavior to predict future!
- Overcome prediction problem in SJF
- Assumption
- I/O-bound in past, I/O-bound in future
- Scheduler favors jobs that use least CPU time
- Adaptive
- Change in behavior ) change in scheduling
decisions
32MLFQ Approximating SJF
- Multiple queues, different priorities
- Round-robin scheduling at each priority level
- Run all at highest priority first, then next,
etc. - Can lead to starvation
- Increase quantum exponentially at lower priorities
33MLFQ Example
34MLFQ Assigning Priorities
- Job starts in highest priority queue
- Quantum expires ) CPU-bound
- Drop priority one level
- Quantum does not expire ) I/O-bound
- Increase priority one level
- CPU-bound jobs move down,I/O-bound jobs move up
35Improving Fairness
- SJF optimal, but unfair
- Increase fairness give long jobs CPU time
- degrades average waiting time
- Solutions
- Each queue fraction of CPU time
- Fair iff even distribution of jobs among queues
- Adjust priority of jobs w/o service
- Originally done by UNIX
- Avoids starvation
- Under load, waiting time suffers
36This Time Scheduling Algorithms
- FCFS
- First-Come, First-Served
- Round-robin
- SJF
- Multilevel Feedback Queues
- Lottery Scheduling
37Lottery Scheduling
- Every job gets lottery tickets
- Each quantum randomly pick winner
- On averageCPU time proportional to of tickets
- Give most tickets to short-running jobs
(approximates SJF) - Give every job at least one ticket
- Degrades gracefully as load changes
38Example Lottery Scheduling
2
1
1
1
1
1
1
2
- Paying customers 40, guests 60
- 21 ticket ratio
39Example Lottery Scheduling
2
1
1
1
1
1
1
2
- Paying customers 40, guests 60
- 21 ticket ratio
40Example Lottery Scheduling
2
1
1
1
1
1
1
2
- Paying customers 40, guests 60
- 21 ticket ratio
41Example Lottery Scheduling
2
1
1
1
1
1
1
2
- Paying customers 40, guests 60
- 21 ticket ratio
42Example Lottery Scheduling
2
1
1
1
1
1
1
2
- Paying customers 40, guests 60
- 21 ticket ratio
43Example Lottery Scheduling
2
1
1
1
1
1
1
2
- Paying customers 40, guests 60
- 21 ticket ratio
44Example Lottery Scheduling
2
1
1
1
1
1
1
2
- Paying customers 40, guests 60
- 21 ticket ratio
45Example Lottery Scheduling
2
1
1
1
1
1
1
2
2/540
46Example Lottery Scheduling
2
1
1
1
1
1
1
2
3/560
2/540
- Probabilistically achieves desired proportions
47Summary of Scheduling Algorithms
- FCFS
- unfair, average waiting time poor
- Round robin
- fair, average waiting time poor
- SJF
- unfair, minimizes average waiting time
- requires accurate prediction
- Multilevel Feedback Queueing
- approximates SJF
- Lottery scheduling
- fair, low average waiting time
- poor fit to priority
48Next Time