Advanced Scheduling

Advanced Scheduling

Administrivia • Project 1 due Friday noon • If you need longer, email cs140-staff. - Put “extension” in the subject - Tell us where you are, and how much longer you need. - We will give short extensions to people who don’t abuse this • Section Friday to go over project 2 • Project 2 Due Friday, Feb. 7 at noon • Midterm following Monday, Feb. 10 • Midterm will be open book, open notes - Feel free to bring textbook, printouts of slides - Laptop computers or other electronic devices prohibited 1 / 38 Fair Queuing (FQ) [Demers] • Digression: packet scheduling problem - Which network packet should router send next over a link? - Problem inspired some algorithms we will see today - Plus good to reinforce concepts in a different domain. • For ideal fairness, would use bit-by-bit round-robin (BR) - Or send more bits from more important flows (flow importance can be expressed by assigning numeric weights) Flow 1 Flow 2 Round-robin service Flow 3 Flow 4 2 / 38 SJF • Recall limitations of SJF from last lecture: - Can’t see the future . solved by packet length - Optimizes response time, not turnaround time . but these are the same when sending whole packets - Not fair Packet scheduling • Differences from CPU scheduling - No preemption or yielding—must send whole packets . Thus, can’t send one bit at a time - But know how many bits are in each packet . Can see the future and know how long packet needs link • What scheduling algorithm does this suggest? 3 / 38 Packet scheduling • Differences from CPU scheduling - No preemption or yielding—must send whole packets . Thus, can’t send one bit at a time - But know how many bits are in each packet . Can see the future and know how long packet needs link • What scheduling algorithm does this suggest? SJF • Recall limitations of SJF from last lecture: - Can’t see the future . solved by packet length - Optimizes response time, not turnaround time . but these are the same when sending whole packets - Not fair 3 / 38 FQ Algorithm • Goal: Finish sending packets in same order as (impossible) BR • Imagine a virtual clock with one tick per round of BR - Slows down as number of non-empty queues increases a - Let Pi = length of packet i in flow a a - Let Si = virtual time router starts transmitting packet i of flow a a a a - Transmission will finish at virtual time Fi = Si + Pi • a What is Si ? - If i arrived before router finished sending packet i − 1 of same a a flow, then immediately after last bit of i − 1 (i.e., Si = Fi−1) - If no current packets for this flow, then start transmitting as soon a as packet arrives—call the arrival time Ai • a a a a Thus: Fi = max(Fi−1, Ai ) + Pi 4 / 38 FQ Algorithm (cont) • Algorithm: Send packet with lowest virtual finishing time F Flow 1 Flow 2 Flow 1 Flow 2 Output (arriving) (transmitting) Output F = 8 F = 10 F = 10 F = 5 F = 2 (a) (b) • For weighted fair queuing, assign each flow a a weight wa - Lets flow a transmit wa bits per virtual clock tick a a a a a - Now Fi = max(Fi−1, Ai ) + Pi /w • Virtual time is a key technique in many schedulers - Increases monotonically but non-uniformly with real time a - Saves us from recomputing values (e.g., Fi ) as jobs come and go - Accommodates priority by slowing down for important jobs 5 / 38 Recall Limitations of BSD scheduler • Mostly apply to < 2.6.23 Linux schedulers, too • Hard to have isolation / prevent interference - Priorities are absolute • Can’t donate CPU (e.g., to server on RPC) • No flexible control p - E.g., In monte carlo simulations, error is 1/ N after N trials - Want to get quick estimate from new computation - Leave a bunch running for a while to get more accurate results • Multimedia applications - Often fall back to degraded quality levels depending on resources - Want to control quality of different streams 6 / 38 Lottery scheduling [Waldspurger’94] • Inspired by economics & free markets • Issue lottery tickets to processes - By analogy with FQ, #tickets expresses a process’s weight - Let pi have ti tickets - Let T be total # of tickets, T = ∑ ti i - Chance of winning next quantum is ti/T. - Note tickets not used up by lottery (more like season tickets) • Control expected proportion of CPU for each process • Can also group processes hierarchically for control - Subdivide lottery tickets allocated to a particular process - Modeled as currencies, funded through other currencies 7 / 38 Grace under load change • Adding/deleting jobs affects all proportionally • Example - 4 jobs, 1 ticket each, each job 1/4 of CPU - Delete one job, each remaining one gets 1/3 of CPU • A little bit like priority scheduling - More tickets means higher priority • But with even one ticket, won’t starve - Don’t have to worry about absolute priority problem (e.g., where adding one high-priority job starves everyone) 8 / 38 - Consider case of 1,000 equally important processes - With priority, no difference between 1 and 1,000 donations - With tickets, recipient amasses more and more tickets Lottery ticket transfer request tkt serverclient response • Can transfer tickets to other processes • Perfect for IPC (Inter-Process Communication) - Client sends request to server - Client will block until server sends response - So temporarily donate tickets to server • Also avoids priority inversion • How do ticket donation and priority donation differ? 9 / 38 Lottery ticket transfer request tkt serverclient response • Can transfer tickets to other processes • Perfect for IPC (Inter-Process Communication) - Client sends request to server - Client will block until server sends response - So temporarily donate tickets to server • Also avoids priority inversion • How do ticket donation and priority donation differ? - Consider case of 1,000 equally important processes - With priority, no difference between 1 and 1,000 donations - With tickets, recipient amasses more and more tickets 9 / 38 Compensation tickets • What if process only uses fraction f of quantum? - Say A and B have same number of lottery tickets - Proc. A uses full quantum, proc. B uses f fraction - Each wins the lottery as often - B gets fraction f of B’s CPU time. No fair! • Solution: Compensation tickets - Say B uses fraction f of quantum - Inflate B’s tickets by 1/f until it next wins CPU - E.g., if B always uses half a quantum, it should get scheduled twice as often on average - Helps maximize I/O utilization (remember matrix multiply vs. grep from last lecture) 10 / 38 Limitations of lottery scheduling • Unpredictable latencies • Expected errors ∼ sqrt(na) for na allocations - E.g., process A should have had 1/3 of CPU yet after 1 minute has had only 19 seconds • Useful to distinguish two types of error: - Absolute error – absolute value of A’s error (1 sec) - Relative error – A’s error considering only 2 processes, A and B • Probability of getting k of n quanta is binomial distribution h i (n) k( − )n−k = (n) = n! - k p 1 p p fraction tickets owned, k (k!(n−k)!) - For large n, binomial distribution approximately normal - Expected value is p, Variance for a single allocation: p(1 − p)2 + (1 − p)p2 = p(1 − p)(1 − p + p) = p(1 − p) p - Variance for n allocations = np(1 − p), stddev ∼ n 11 / 38 Stride scheduling [Waldspurger’95] • Idea: Apply ideas from weighted fair queuing - Deterministically achieve similar goals to lottery scheduling • For each process, track: - tickets – priority (weight) assigned by administrator - stride ≈ 1/tickets – speed of virtual time while process has CPU - pass – cumulative virtual CPU time used by process • Schedule process c with lowest pass • Then increase: c->pass += c->stride • Note, can’t use floating point in the kernel - Saving FP regs too expensive, so make stride & pass integers - Let stride1 be largish integer (stride for 1 ticket) - Really set stride = stride1/tickets 12 / 38 Stride scheduling example stride = 6 20 1 3 tickets, stride=2 2 tickets, stride = 3 15 1 ticket, stride = 6 10 Pass Value 5 0 0 5 10 Time (quanta) 13 / 38 • Stride Relative error always ≤ 1 quantum - E.g., say A, B have same number of tickets - B has had CPU for one more time quantum than A - B will have larger pass, so A will get scheduled first • Stride absolute error ≤ n quanta if n processes in system - E.g., 100 processes each with 1 ticket - After 99 quanta, one of them still will not have gotten CPU Stride vs. lottery • Stride offers many advantages of lottery scheduling - Good control over resource allocation - Can transfer tickets to avoid priority inversion - Use inflation/currencies for users to control their CPU fraction • What are stride’s absolute & relative error? 14 / 38 Stride vs. lottery • Stride offers many advantages of lottery scheduling - Good control over resource allocation - Can transfer tickets to avoid priority inversion - Use inflation/currencies for users to control their CPU fraction • What are stride’s absolute & relative error? • Stride Relative error always ≤ 1 quantum - E.g., say A, B have same number of tickets - B has had CPU for one more time quantum than A - B will have larger pass, so A will get scheduled first • Stride absolute error ≤ n quanta if n processes in system - E.g., 100 processes each with 1 ticket - After 99 quanta, one of them still will not have gotten CPU 14 / 38 Simulation results 10 10 5 5 Error (quanta) Mean Error (quanta) (a) Lottery 7:3 (b) Stride 7:3 0 0 0 200 400 600 800 1000 0 20 40 60 80 100 p • Can clearly see n factor for lottery • Stride doing much better 15 / 38 20 3 tickets 2 tickets 15 1 ticket stride1 = 6 • No! Would mean long latency - E.g., transfer 2 tickets to at time 0 10 - Now has same priority as - But still waits 6 seconds to run 5 - Very bad for IPC latency, mutexes, etc.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    46 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us