CS162 Operating Systems and Systems Programming Lecture 11 Thread Scheduling con t Protection Address Spaces October 5 2009 Prof John Kubiatowicz http inst eecs berkeley edu cs162 Review Banker s Algorithm for Preventing Deadlock Banker s algorithm Allocate resources dynamically Evaluate each request and grant if some ordering of threads is still deadlock free afterward Technique pretend each request is granted then run deadlock detection algorithm substituting Maxnode Allocnode Avail for Requestnode Avail Grant request if result is deadlock free conservative Keeps system in a SAFE state i e there exists a sequence T1 T2 Tn with T1 requesting all remaining resources finishing then T2 requesting all remaining resources etc Algorithm allows the sum of maximum resource needs of all current threads to be greater than total resources 10 5 09 Kubiatowicz CS162 UCB Fall 2009 Lec 11 2 Review Last Time Scheduling selecting a waiting process from the ready queue and allocating the CPU to it FCFS Scheduling Run threads to completion in order of submission Pros Simple Cons Short jobs get stuck behind long ones Round Robin Scheduling Give each thread a small amount of CPU time when it executes cycle between all ready threads Pros Better for short jobs Cons Poor when jobs are same length 10 5 09 Kubiatowicz CS162 UCB Fall 2009 Lec 11 3 Review FCFS and RR Example with Different Quantum P2 Best FCFS 8 0 8 Wait Time Completi on Time 10 5 09 P4 24 P1 53 32 P3 68 85 153 Quantum P1 P2 P3 P4 Average Best FCFS 32 0 85 8 31 Q 1 84 22 85 57 62 Q 5 82 20 85 58 61 Q 8 80 8 85 56 57 Q 10 82 10 85 68 61 Q 20 72 20 85 88 66 Worst FCFS 68 145 0 121 83 Best FCFS 85 8 153 32 69 Q 1 137 30 153 81 100 Q 5 135 28 153 82 99 Q 8 133 16 153 80 95 Q 10 135 18 153 92 99 Q 20 125 28 153 112 104 145 121 Lec 11 4 Worst FCFS 121 153 68 Kubiatowicz CS162 UCB Fall 2009 Review SRTF Further discussion Starvation SRTF can lead to starvation if many small jobs Large jobs never get to run Somehow need to predict future How can we do this Some systems ask the user When you submit a job have to say how long it will take To stop cheating system kills job if takes too long But Even non malicious users have trouble predicting runtime of their jobs Bottom line can t really know how long job will take However can use SRTF as a yardstick for measuring other policies Optimal so can t do any better SRTF Pros Cons Optimal average response time Hard to predict future Unfair 10 5 09 Kubiatowicz CS162 UCB Fall 2009 Lec 11 5 Goals for Today Finish discussion of Scheduling Kernel vs User Mode What is an Address Space How is it Implemented Note Some slides and or pictures in the following are adapted from slides 2005 Silberschatz Galvin and 10 5 09 Kubiatowicz CS162 UCB Fall 2009 Lec 11 6 Gagne Example to illustrate benefits of SRTF A or B C C s C s C s I O I O I O Three jobs A B both CPU bound run for week C I O bound loop 1ms CPU 9ms disk I O If only one at a time C uses 90 of the disk A or B could use 100 of the CPU With FIFO Once A or B get in keep CPU for two weeks What about RR or SRTF Easier to see with a timeline 10 5 09 Kubiatowicz CS162 UCB Fall 2009 Lec 11 7 SRTF Example continued C A B RR 100ms time slice C s I O CABAB C s I O C A A 10 5 09 C sDisk Utilization I O 90 but lots of wakeups C C s I O C s I O Disk Utilization C 9 201 4 5 C s I O RR 1ms time slice Disk Utilization 90 A SRTF Kubiatowicz CS162 UCB Fall 2009 Lec 11 8 Predicting the Length of the Next CPU Burst Adaptive Changing policy based on past behavior CPU scheduling in virtual memory in file systems etc Works because programs have predictable behavior If program was I O bound in past likely in future If computer behavior were random wouldn t help Example SRTF with estimated burst length Use an estimator function on previous bursts Let tn 1 tn 2 tn 3 etc be previous CPU burst lengths Estimate next burst n f tn 1 tn 2 tn 3 Function f could be one of many different time series estimation schemes Kalman filters etc For instance exponential averaging n tn 1 1 n 1 with 0 1 10 5 09 Kubiatowicz CS162 UCB Fall 2009 Lec 11 9 Multi Level Feedback Scheduling Long Running Comput Tasks Demoted to Low Priority Another method for exploiting past behavior First used in CTSS Multiple queues each with different priority Higher priority queues often considered foreground tasks Each queue has its own scheduling algorithm e g foreground RR background FCFS Sometimes multiple RR priorities with quantum increasing exponentially highest 1ms next 2ms next 4ms etc Adjust each job s priority as follows details vary Job starts in highest priority queue If timeout expires drop one level If timeout doesn t expire push up one level or to top 10 5 09 Kubiatowicz CS162 UCB Fall 2009 Lec 11 10 Scheduling Details Result approximates SRTF CPU bound jobs drop like a rock Short running I O bound jobs stay near top Scheduling must be done between the queues Fixed priority scheduling serve all from highest priority then next priority etc Time slice each queue gets a certain amount of CPU time e g 70 to highest 20 next 10 lowest Countermeasure user action that can foil intent of the OS designer For multilevel feedback put in a bunch of meaningless I O to keep job s priority high Of course if everyone did this wouldn t work Example of Othello program Playing against competitor so key was to do computing at higher priority the competitors 10 5 09 Put in printf s ran CS162 much UCB faster Kubiatowicz Fall 2009 Lec 11 11 Administrivia Midterm I coming up in two weeks Monday 10 19 6 00 9 00 145 Dwinelle Should be 2 hour exam with extra time Closed book one page of hand written notes both sides No class on day of Midterm I will post extra office hours for people who have questions about the material or life whatever Review Session 7 00pm Sunday 10 18 Location TBA Midterm Topics Everything up to and including Wednesday 10 14 History Concurrency Multithreading Synchronization Protection Address Spaces TLBs 10 5 09 Kubiatowicz CS162 UCB Fall 2009 Lec 11 12 Scheduling Fairness What about fairness Strict fixed priority scheduling between queues is unfair run highest then next etc long running jobs may never get CPU In Multics shut down machine found 10 year old …
View Full Document
Unlocking...