320 likes | 447 Views
Operating Systems CSE 411. CPU Management Sept. 20 2006 - Lecture 7 Instructor: Bhuvan Urgaonkar. Last class Dispatcher Context switch, FCFS, SJF, SRPT, RR, Priority, Quantum size Read on your own: Multi-level (feedback) queue based scheduling Today More on CPU scheduling.
E N D
Operating SystemsCSE 411 CPU Management Sept. 20 2006 - Lecture 7 Instructor: Bhuvan Urgaonkar
Last class • Dispatcher • Context switch, FCFS, SJF, SRPT, RR, Priority, Quantum size • Read on your own: Multi-level (feedback) queue based scheduling • Today • More on CPU scheduling
Proportional-Share Schedulers • A general class of scheduling algorithms • Process Pi given a CPU weight wi > 0 • The scheduler needs to ensure the following • forall i, j, |Ti(t1, t2)/Tj(t1,t2) - wi/wj| ≤ e • Given Pi and Pj were backlogged during [t1,t2] • Who chooses the weights and how? • Application modeling problem: non-trivial • Approaches: analytical, empirical • A part of my Ph.D. thesis • Many PS schedulers developed in the 90s • E.g., Start-time Fair Queueing (Qlinux UT-Austin/Umass-Amherst)
Lottery Scheduling[Carl Waldspurger, MIT, ~1995] • Perhaps the simplest proportional-share scheduler • Create lottery tickets equal to the sum of the weights of all processes • What if the weights are non-integral? • Draw a lottery ticket and schedule the process that owns that ticket • What if the process is not ready? • Draw tickets only for ready processes • Homework 1: Calculate the time/space complexity of the operations Lottery scheduling will involve • Likely question on Exam 1 !!!
Lottery Scheduling Example P1=6 P2=9 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15 9 Schedule P2
Lottery Scheduling Example P1=6 P2=9 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15 3 Schedule P1
Lottery Scheduling Example P1=6 P2=9 • As t ∞, processes will get their share (unless they were blocked a lot) • Problem with Lottery scheduling: Only probabilistic guarantee • What does the scheduler have to do • When a new process arrives? • When a process terminates? 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15 11 Schedule P2
Work Conservation • Examples of work-conserving schedulers: All schedulers we have studied so far • Examples of non-work-conserving schedulers: • DFS, a PS scheduler for multi-processors (Abhishek Chandra, Umass, 2000, now at Univ. of Minnesota) • Experiments showed the scheduler had become NWC! • Fair Airport to convert into a WC scheme NWC Scheduler WC Scheduler
Reservation-based Schedulers • Each process has a pair (x, y) • Divide time into periods of length y each • Guaranteed to get x time units every period • Can be Non-work-conserving
Rate Regulation: Leaky Bucket • A type of reservation-based scheduling • Leaky bucket policing • Rate ri for process Pi • CPUcycles over period t ri * t CPU requirement burst bi Max. rate at which the process may progress ri CPU the process gets
Rate Regulation: Token Bucket • A type of reservation-based scheduling • Token bucket policing • Rate ri and burst bi for process Pi • CPUcycles over period t ri * t + bi burst bi tokens CPU requirement ri
Deadline-based Scheduling • Can be NWC • Several variants NP-hard • Real-time systems • “Soft” real-time systems • E.g., media servers: 30 MPEG-1 frames/sec • A few violations may be tolerable
An Interesting Problem: An Invitation to do Research on CPU Scheduling • Can we achieve the effect of a scheduler that can provide resource guarantees using a priority-based scheduler? • You are welcome to talk to me during office hours if you find this interesting or if you have any thoughts on this
Hierarchical Schedulers Reservation-based (4, 10) (6, 10) • Variety of schedulers • Subsets of processes with different scheduling needs Round-robin Lottery w=1 w=2 UNIX UNIX Processes
Scheduler Considerations: Context-Switch Overhead • Switching context • User mode to Kernel mode • Save PCB • Process interrupt (e.g, TCP/IP processing) if needed • Run scheduling algorithm • Load registers (e.g., PC) from PCB of chosen process • Flush TLB (will discuss this under memory management) • Switching to user mode • Jumping to the proper location in the user program to restart that program • Context switch time for Pentium/Linux: tens of microsec • So how often should the scheduler be invoked?
Scheduler Considerations: Quantum Length • The duration for which a CPU-intensive process will run before being scheduled out in favor of another process • Different processes may have different quantum lengths • E.g., UNIX: Higher priority => Larger quantum • Typically tens of msec in modern systems • Small => Context switch overhead high • Large => Bad responsiveness => Interactive processes suffer
Scheduler Considerations:CPU Accounting • Scheduler maintains CPU usage, last scheduling instant etc. in each PCB • Who should be charged for the CPU usage during interrupt processing? • Optional reading: Resource containers (Rice University, OSDI 1999, Gaurav Banga et al.)
Scheduler Considerations:Time and Space Requirements • Run time (n processes) • FCFS: O(1) • RR: O(1) • Deadline-based algos: NP-hard variants, poly-time heuristics • Update time: Operations done when set of processes changes (new, terminate, block, become ready) • Space requirements • Space to store various data structs
Scheduler Evaluation • Optimize one or more of response time, waiting time, throughput, fairness, utilization, .. • Overheads • Run time (time to pick the next process to schedule) • Update time • Space requirements
Analytical Approaches to Scheduler Evaluation • Example 1: Our evaluation of FCFS and SJF • Example 2: Queueing Theory • Little’s Law: applies to any scheduling discipline • avg_num_processes_in_system = tput * avg_time_spent_in_system • Queuing theory provides expressions for mean response time for certain scheduling policies (FCFS, PS, LCFS) • Other statistical properties of response time only under restrictive assumptions on arrival process and service time yet to arrive serviced waiting running
Discussion: Analytical Approaches • Pros: • Intellectually satisfying! • Quick, no code to be written • May provide generally applicable results • Cons: • Often over-simplified • Hard to model complex scheduling algorithms • Lack of info about workloads
Simulation-based Evaluation • Write software that mimics the behavior of the scheduler • Subject it to realistic workload • Observe output and make inferences about performance of scheduler • Only need to know the algorithms, no need to do complex math • Easier to implement than the actual system
Prototyping • Build it!
Analysis, Simulation, and Prototyping Compared accuracy, programming skills effort, time investment, mathematical skills, generality Analysis Simulation Prototyping
Hybrid Approaches Analysis Simulation Prototyping
What is a Thread? • A basic unit of CPU utilization like a process (not necessarily known to the OS though) • “Smaller” than a process • Part of a process • Shares code + data + some other OS resources with other threads that belong to the same process
User Threads • Thread management done by user-level threads library • OS doesn’t know about the existence of these threads • Three primary thread libraries: • POSIX Pthreads • Win32 threads • Java threads
Kernel Threads • OS sees and manages these threads • OS provides system calls to create, terminate, etc. (just like the system calls it provides for processes) • Examples • Windows XP/2000 • Solaris • Linux • Tru64 UNIX • Mac OS X
Benefits • Responsiveness • Resource Sharing • Economy • Utilization of MP Architectures