5.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 5: CPU Scheduling
5.2 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.3 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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)
5.4 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Scheduling Algorithm Optimization Criteria Max CPU utilization Max throughput Min turnaround time Min waiting time Min response time
5.5 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition First-Come, First-Served (FCFS) Scheduling Schedule according to processes arrival time ProcessBurst Time P 1 24 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: Waiting time for P 1 = 0; P 2 = 24; P 3 = 27 Average waiting time: ( )/3 = 17 P1P1 P2P2 P3P
5.6 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition FCFS Scheduling (Cont.) Suppose that the processes arrive in the order: P 2, P 3, P 1 The Gantt chart for the schedule is: Waiting time for P 1 = 6; P 2 = 0 ; P 3 = 3 Average waiting time: ( )/3 = 3 Drawback-1: Drastic variations in wait times Drawback-2: Convoy effect FCFS is non-preemptive P1P1 P3P3 P2P
5.7 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.8 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Example of SJF ProcessArrival TimeBurst Time P P P P SJF scheduling chart Average waiting time = ( ) / 4 = 7 P4P4 P3P3 P1P P2P2 24
5.9 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.10 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Exponential Averaging =0 n+1 = n Recent history does not count =1 n+1 = t n Only the actual last CPU burst counts If we expand the formula, we get: n+1 = t n +(1 - ) t n -1 + … +(1 - ) j t n -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
5.11 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Prediction of the Length of the Next CPU Burst
5.12 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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 ATBT P1 08 P2 14 P3 29 P4 35
5.13 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.14 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Priority Scheduling (Contd.) Example ProcessBTPriority P110 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2 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
5.15 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.16 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Example of RR with Time Quantum = 4 ProcessBurst Time P 1 24 P 2 3 P 3 3 The Gantt chart is: Average wait time is 17/3 milliseconds Typically, higher average turnaround than SJF, but better response P1P1 P2P2 P3P3 P1P1 P1P1 P1P1 P1P1 P1P
5.17 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.18 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Time Quantum and Context Switch Time
5.19 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Turnaround Time Varies With The Time Quantum
5.20 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.21 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Multilevel Queue Scheduling
5.22 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.23 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.24 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Multilevel Feedback Queues
5.25 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Example of Multilevel Feedback Queue Three queues: Q 0 – RR with time quantum 8 milliseconds Q 1 – RR time quantum 16 milliseconds Q 2 – FCFS Scheduling A new job enters queue Q 0 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 Q 1. At Q 1 job is again served FCFS and receives 16 additional milliseconds. If it still does not complete, it is preempted and moved to queue Q 2.
5.26 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.27 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.28 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Multiple-Processor Scheduling Issues Processor Affinity Load Balancing Scheduling on Multi-Cores
5.29 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.30 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.31 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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
5.32 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition 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