Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Chapter 5: CPU Scheduling Operating System Concepts with Java – 8th Edition 5.1 Silberschatz, Galvin and Gagne ©2009 Announcements Mid-term exam – Next Tuesday (10/08) In-class, closed book, one cheat sheet allowed What topics are included – everything that we cover until tomorrows class Thursday – brief review session Operating System Concepts with Java – 8th Edition 5.2 Silberschatz, Galvin and Gagne ©2009 Scheduling Criteria CPU utilization – %age of time CPU is busy 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) Operating System Concepts with Java – 8th Edition 5.3 Silberschatz, Galvin and Gagne ©2009 Scheduling Algorithm Optimization Criteria Max CPU utilization Max throughput Min turnaround time Min waiting time Min response time Operating System Concepts with Java – 8th Edition 5.4 Silberschatz, Galvin and Gagne ©2009 First-Come, First-Served (FCFS) Scheduling Schedule according to processes arrival time Process Burst Time P1 P2 P3 24 3 3 Suppose that the processes arrive in the order: P1 , P2 , P3 The Gantt Chart for the schedule is: P1 P2 0 24 P3 27 30 Waiting time for P1 = 0; P2 = 24; P3 = 27 Average waiting time: (0 + 24 + 27)/3 = 17 Operating System Concepts with Java – 8th Edition 5.5 Silberschatz, Galvin and Gagne ©2009 FCFS Scheduling (Cont.) Suppose that the processes arrive in the order: P2 , P3 , P1 The Gantt chart for the schedule is: P2 0 P3 3 P1 6 30 Waiting time for P1 = 6; P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 Drawback-1: Drastic variations in wait times Drawback-2: Convoy effect FCFS is non-preemptive Operating System Concepts with Java – 8th Edition 5.6 Silberschatz, Galvin and Gagne ©2009 Shortest-Job-First (SJF) Scheduling Associates each process with the length of its next CPU burst Use these lengths to schedule the process with the shortest CPU burst time Shortest-next-CPU-Burst algorithm SJF is optimal – gives minimum average waiting time for a given set of processes The difficulty is knowing the length of the next CPU request Long-term job schedulers utilize user-specified process time limit Users are motivated to accurately estimate job durations Cannot be implemented in a short-term scheduler Estimation-based strategy Operating System Concepts with Java – 8th Edition 5.7 Silberschatz, Galvin and Gagne ©2009 Example of SJF Process Arrival Time Burst Time P1 0.0 6 P2 2.0 8 P3 4.0 7 P4 5.0 3 SJF scheduling chart P1 P4 0 3 P3 9 P2 16 24 Average waiting time = (3 + 16 + 9 + 0) / 4 = 7 Operating System Concepts with Java – 8th Edition 5.8 Silberschatz, Galvin and Gagne ©2009 Estimating Length of Next CPU Burst Use previous data from previous CPU bursts to estimate the next burst Can be done by using the length of previous CPU bursts, using exponential averaging 1. t n actual length of n th CPU burst 2. n 1 predicted value for the next CPU burst 3. , 0 1 n 1 t n 1 n . 4. Define : Operating System Concepts with Java – 8th Edition 5.9 Silberschatz, Galvin and Gagne ©2009 Exponential Averaging =0 n+1 = n Recent history does not count =1 n+1 = tn Only the actual last CPU burst counts If we expand the formula, we get: n+1 = tn+(1 - ) tn -1 + … +(1 - )j tn -j + … +(1 - )n +1 0 Since both and (1 - ) are less than or equal to 1, each successive term has less weight than its predecessor Operating System Concepts with Java – 8th Edition 5.10 Silberschatz, Galvin and Gagne ©2009 Prediction of the Length of the Next CPU Burst Operating System Concepts with Java – 8th Edition 5.11 Silberschatz, Galvin and Gagne ©2009 Pre-emptive and Non-Preemptive SJF What happens if a process with shorter CPU burst arrives at the ready queue when previous process still running? Non-preemptive lets the current job complete before scheduling the shortest one next Pre-emptive may interrupt the current job Shortest-remaining-time-first scheduling Current job will be interrupted only if the remaining time of at least one process on ready queue is less than the remaining time of the current process Process AT BT P1 0 8 P2 1 4 P3 2 9 P4 3 5 Operating System Concepts with Java – 8th Edition 5.12 Silberschatz, Galvin and Gagne ©2009 Priority Scheduling A priority number (integer) is associated with each process The CPU is allocated to the process with the highest priority (smallest integer highest priority in this text book) SJF is a priority scheduling where priority is the predicted next CPU burst time Preemptive Non-preemptive Problem Starvation – low priority processes may never execute Solution Aging – as time progresses increase the priority of the process Operating System Concepts with Java – 8th Edition 5.13 Silberschatz, Galvin and Gagne ©2009 Priority Scheduling (Contd.) Example Process BT Priority P1 10 3 P2 1 1 P3 2 4 P4 1 5 5 2 P5 Priority may be internally or externally specified Problem Starvation – low priority processes may never execute Solution Aging – as time progresses increase the priority of the process Operating System Concepts with Java – 8th Edition 5.14 Silberschatz, Galvin and Gagne ©2009 Round Robin (RR) Designed for time-sharing systems FCFS with pre-emption Each process gets a small unit of CPU time called time quantum Processes pre-empted at the end of time quantum New processes added to tail of ready queue CPU executes process at the head of the queue On preemption, process added to the tail Operating System Concepts with Java – 8th Edition 5.15 Silberschatz, Galvin and Gagne ©2009 Example of RR with Time Quantum = 4 Process P1 Burst Time 24 P2 P3 3 3 The Gantt chart is: P1 0 P2 4 P3 7 P1 10 P1 14 P1 18 22 P1 26 P1 30 Average wait time is 17/3 milliseconds Typically, higher average turnaround than SJF, but better response Operating System Concepts with Java – 8th Edition 5.16 Silberschatz, Galvin and Gagne ©2009 Round Robin (Contd.) If there are n processes and the time quantum is q, 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 depends heavily on time quantum duration q large FIFO q small Processor sharing appearance of each process having its own processor (was used in CDC hardware) In general, having too small quantum duration is bad – why? Context-switch time should be small fraction of quantum duration Turn-around time also depends upon time-quantum duration Does not monotonically improve as quantum increases Operating System Concepts with Java – 8th Edition 5.17 Silberschatz, Galvin and Gagne ©2009 Time Quantum and Context Switch Time Operating System Concepts with Java – 8th Edition 5.18 Silberschatz, Galvin and Gagne ©2009 Turnaround Time Varies With The Time Quantum Operating System Concepts with Java – 8th Edition 5.19 Silberschatz, Galvin and Gagne ©2009 Multilevel Queue Crafted for situations with multiple job categories (e.g., interactive and batch processes running on the same machine Ready queue is partitioned into separate queues: Foreground (interactive) Background (batch) Jobs permanently assigned to one of the queues Each queue has its own scheduling algorithm foreground – RR background – FCFS Operating System Concepts with Java – 8th Edition 5.20 Silberschatz, Galvin and Gagne ©2009 Multilevel Queue Scheduling Operating System Concepts with Java – 8th Edition 5.21 Silberschatz, Galvin and Gagne ©2009 Multilevel Queue (Contd.) Scheduling must be also done between the queues Fixed priority scheduling No process from lower priority queue is executed unless all higher priority queues are empty Possibility of Starvation Time slice – each queue gets a certain amount of CPU time which it can schedule amongst its processes 80% to foreground in RR 20% to background in FCFS Operating System Concepts with Java – 8th Edition 5.22 Silberschatz, Galvin and Gagne ©2009 Multilevel Feedback Queue In multi-level queues jobs are permanently assigned to queues Simple but inflexible MFQ allows processes to move between queues Process using too much CPU time will move to a lower priority queue Process waiting for too long in a lower priority queue can be promoted Aging to prevent starvation Operating System Concepts with Java – 8th Edition 5.23 Silberschatz, Galvin and Gagne ©2009 Multilevel Feedback Queues Operating System Concepts with Java – 8th Edition 5.24 Silberschatz, Galvin and Gagne ©2009 Example of Multilevel Feedback Queue Three queues: Q0 – RR with time quantum 8 milliseconds Q1 – RR time quantum 16 milliseconds Q2 – FCFS Scheduling A new job enters queue Q0 which is served FCFS. When it gains CPU, job receives 8 milliseconds. If it does not finish in 8 milliseconds, job is moved to queue Q1. At Q1 job is again served FCFS and receives 16 additional milliseconds. If it still does not complete, it is preempted and moved to queue Q2. Operating System Concepts with Java – 8th Edition 5.25 Silberschatz, Galvin and Gagne ©2009 Multilevel Feedback Queue (Contd.) Multilevel-feedback-queue scheduler defined by the following parameters: number of queues scheduling algorithms for each queue method used to determine when to upgrade a process method used to determine when to demote a process method used to determine which queue a process will enter when that process needs service Operating System Concepts with Java – 8th Edition 5.26 Silberschatz, Galvin and Gagne ©2009 Multiple-Processor Scheduling CPU scheduling more complex when multiple CPUs are available Homogeneous processors within a multiprocessor Asymmetric multiprocessing Scheduling decisions and I/O processing handled by a single processor Simple because it alleviates the need for data sharing Symmetric multiprocessing each processor is self-scheduling all processes can be in common ready queue, or each can have its own private queue of ready processes Need for synchronization Operating System Concepts with Java – 8th Edition 5.27 Silberschatz, Galvin and Gagne ©2009 Multiple-Processor Scheduling Issues Processor Affinity Load Balancing Scheduling on Multi-Cores Operating System Concepts with Java – 8th Edition 5.28 Silberschatz, Galvin and Gagne ©2009 Processor Affinity Migrating processes from one processor to another is expensive Data caching at processors Needs invalidation and repopulation Processor affinity – process has affinity for processor on which it is currently running Soft affinity Attempt to keep process on same machine – no guarantees Hard affinity Processes can specify that they should not be migrated Most Oses provide this option Operating System Concepts with Java – 8th Edition 5.29 Silberschatz, Galvin and Gagne ©2009 NUMA and CPU Scheduling CPUs have faster access to certain parts of memory Memory allocation on the same board where a process has affinity Requires memory allocation and scheduler to work in tandem Operating System Concepts with Java – 8th Edition 5.30 Silberschatz, Galvin and Gagne ©2009 Load Balancing Important to keep the workload balanced Load imbalances can reduce throughput of the system Some processors might be overloaded whereas others may sit idle Load balancing typically needed on machines with private run queues Push Migration Dedicated task checks for loads and re-distributes Pull Migration Idle processors “pull” tasks from overloaded processors Tension between processor affinity and load balancing Operating System Concepts with Java – 8th Edition 5.31 Silberschatz, Galvin and Gagne ©2009 Virtualization and Scheduling Host OS and Guest OSes Virtualization software presents virtual CPUs to guest OSes Physical CPU is multiplexed among guest Oses Scheduling algorithms that assume certain amount of progress in certain amount of time will be affected by virtualization A process of guest OS might not get 100ms of CPU time although the guest OS allocated 100ms of CPU time Virtualization may counteract scheduling algorithm benefits Operating System Concepts with Java – 8th Edition 5.32 Silberschatz, Galvin and Gagne ©2009