Operating Systems CMPSC 473 Processes contd September 01
Operating Systems CMPSC 473 Processes (contd. ) September 01, 2010 - Lecture 4 Instructor: Bhuvan Urgaonkar
Process Switch • Suspend the current process and resume a previously suspended process – Also called context switch or task switch
Process Switch Process 0 Involuntary/Voluntary Process 1 Context_switch() { A 1 A 2 B 1 B 2 } B 3 B 4
Process Switch • What does the kernel need to save when suspending a process? – Hint: The entire address space is already saved (either in memory or on swap space). What else would the process need when it has to be resumed? – CPU registers • This is called the hardware context of the process • Execution context, PC, pointers to elements within address space, page table, etc.
Context_switch() { push R 0, R 1, … PCB[curr]. SP = SP PCB[curr]. PT = PT next = schedule() // save regs on its stack // save stack pointer // save ptr(s) to address space // find next process to run PT = PCB[next]. PT SP = PCB[next]. SP pop Rn, … R 0 return } // NOTE: Ctrl returns to another process
Overheads of Process Switch • Direct – The time spent switching context • Indirect – Cache pollution – TLB flush
CPU Scheduling
Process Scheduling Hmm. . Who should I pick to run? Running OS (scheduler) Ready Lock Waiting Disk
When is the scheduler invoked? • CPU scheduling decisions may take place when a process: 1. Switches from running to waiting state 2. Switches from running to ready state 3. Switches from waiting to ready 4. Terminates • Scheduling only under 1 and 4: nonpreemptive scheduling – E. g. , FCFS and SJF • All other scheduling is preemptive
First-Come, First-Served Scheduling Process Run Time (FCFS) P 24 1 P 2 3 P 3 3 • Suppose that the processes arrive in the order: P 1 , P 2 , P 3 The Gantt Chart for the schedule is: P 1 0 P 2 24 • Waiting time for P 1 = 0; P 2 = 24; P 3 = 27 • Average waiting time: (0 + 24 + 27)/3 = 17 P 3 27 30
FCFS Scheduling (Cont. ) Suppose that the processes arrive in the order P 2 , P 3 , P 1 • The Gantt chart for the schedule is: P 2 0 • • P 3 3 P 1 6 Waiting time for P 1 = 6; P 2 = 0; P 3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 Much better than previous case Convoy effect short process behind long process 30
Choosing the Right Scheduling Algorithm/Scheduling CPU utilization – keep the CPU as busy as possible Criteria • • 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) • Fairness
Shortest-Job-First (SJF) Scheduling • Associate with each process the length of its next CPU burst. Use these lengths to schedule the process with the shortest time • SJF is optimal for avg. waiting time – gives minimum average waiting time for a given set of processes – In class: Compute average waiting time for the previous example with SJF – Exercise: Prove the optimality claimed above
Why Pre-emption is Necessary • To improve CPU utilization – Most processes are not ready at all times during their lifetimes – E. g. , think of a text editor waiting for input from the keyboard – Also improves I/O utilization • To improve responsiveness – Many processes would prefer “slow but steady progress” over “long wait followed by fast process” • Most modern CPU schedulers are pre-emptive
SJF: Variations on the • Non-preemptive: once CPU given to the process ittheme cannot be preempted until completes its CPU burst - the SJF we already saw • Preemptive: if a new process arrives with CPU length less than remaining time of current executing process, preempt. This scheme is know as Shortest-Remaining-Time-First (SRTF) § Also called Shortest Remaining Processing Time (SRPT) • Why SJF/SRTF may not be practical § CPU requirement of a process rarely known in advance
Round Robin (RR) • Each process gets a small unit of CPU time (time quantum), usually 10 -100 milliseconds. After this time has elapsed, the process is preempted and added to the end of the ready queue. • If there are n processes in the ready queue and the time quantum is q, then 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 – q large => FCFS – q small => q must be large with respect to context switch, otherwise overhead is too
Example of RR with Time Quantum = 20 Process P 1 P 2 P 3 P 4 CPU Time 53 17 68 24 • The Gantt chart is: P 1 0 P 2 20 37 P 3 P 4 57 P 1 77 P 3 P 4 P 1 P 3 97 117 121 134 154 162 • Typically, higher average turnaround than SJF, but better response
Time Quantum and Context Switch Time
Turnaround Time Varies With Time Quantum
Proportional-Share A generalization of round robin Schedulers Process P given a CPU weight w > 0 • • i i • The scheduler needs to ensure the following – forall i, j, |Ti(t 1, t 2)/Tj(t 1, t 2) - wi/wj| ≤ e – Given Pi and Pj were backlogged during [t 1, t 2] • Who chooses the weights and how? • Application modeling problem: non-trivial • Many PS schedulers developed in the 90 s – 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 – Exercise: Calculate the time/space complexity of the operations Lottery scheduling will involve
Lottery Scheduling Example P 1=6 P 2=9 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15 9 Schedule P 2
Lottery Scheduling Example P 1=6 P 2=9 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15 3 Schedule P 1
Lottery Scheduling Example P 1=6 P 2=9 1 4 7 10 13 2 5 8 11 14 3 6 9 12 15 11 • • • 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? Schedule P 2
- Slides: 24