450 likes | 1.25k Views
Scheduling Algorithms. FCFS First-Come, First-Served Round-robin SJF Multilevel Feedback Queues. Round-Robin Scheduling. Quantum expires: move to back of ready queue Variants used in most real systems Tradeoffs: length of quantum Large: response time increases
E N D
Scheduling Algorithms • FCFS • First-Come, First-Served • Round-robin • SJF • Multilevel Feedback Queues
Round-Robin Scheduling • Quantum expires: move to back of ready queue • Variants used in most real systems • Tradeoffs: length of quantum • Large: response time increases • Small: throughput decreases • quantum →0 = overhead dominates • context switches, cache misses
waiting running Example: Round-Robin
waiting running Example: Round-Robin
waiting running Example: Round-Robin
waiting running Example: Round-Robin
waiting running Example: Round-Robin
waiting running Example: Round-Robin
waiting running Example: Round-Robin
waiting running Example: Round-Robin
waiting running Example: Round-Robin
waiting running Example: Round-Robin
waiting running Example: Round-Robin • Fair • Long average wait times
Round-Robin vs. FCFS • Example 1: • 5 jobs, 100 seconds each, quantum = 1s • ignore context switch time
Round-Robin vs. FCFS • Example 1: • 5 jobs, 100 seconds each, quantum = 1s • ignore context switch time
Round-Robin vs. FCFS • Example 2: • 5 jobs: 50, 40, 30, 20, 10 seconds each, quantum = 1s
Round-Robin vs. FCFS • Example 2: • 5 jobs: 50, 40, 30, 20, 10 seconds each, quantum = 1s
This Time: Scheduling Algorithms • FCFS • First-Come, First-Served • Round-robin • SJF • Multilevel Feedback Queues
0 10 30 60 100 150 Example: SJF • Schedule job with least work until I/O or done 10 20 30 40 50
0 10 30 60 100 150 Example: SJF • Schedule job with least work until I/O or done 10 20 30 40 50
0 10 30 60 100 150 Example: SJF • Schedule job with least work until I/O or done 10 20 30 40 50
0 10 30 60 100 150 Example: SJF • Schedule job with least work until I/O or done 10 20 30 40 50
0 10 30 60 100 150 Example: SJF • Schedule job with least work until I/O or done 10 20 30 40 50
0 10 30 60 100 150 Example: SJF • Schedule job with least work until I/O or done 10 20 30 40 50
Example: SJF • 5 jobs, length 50, 40, 30, 20, 10 seconds, quantum = 1s
Example: SJF • 5 jobs, length 50, 40, 30, 20, 10 seconds
SJF/SRTF: Shortest-Job First • Advantages: • Provably optimal – minimizes average waiting time • Works for preemptive & non-preemptive schedulers • Preemptive SJF = SRTF • Shortest remaining time first • Disadvantages: • Impossible to predict CPU time job has left • Long-running CPU-bound jobs can starve
This Time: Scheduling Algorithms • FCFS • First-Come, First-Served • Round-robin • SJF • Multilevel Feedback Queues
Multilevel Feedback Queues (MLFQ) • Use past behavior to predict future, assign job priorities • Overcome prediction problem in SJF • Assumption: • I/O-bound in past, I/O-bound in future • Scheduler favors jobs that used least CPU time • Adaptive: • Change in behavior → change in scheduling decisions
MLFQ: Approximating SJF • Multiple queues, different priorities • Round-robin scheduling at each priority level • Run all jobs at highest priority first (till this queue is empty), then next, etc. • Can lead to starvation • Increase quantum exponentially at lower priorities
MLFQ: 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
Summary 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 Queuing: • approximates SJF