Chap 5 CPU Scheduling.ppt
Document Details
Uploaded by GracefulMossAgate
Full Transcript
Chapter 5: CPU Scheduling Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018 Objectives To introduce CPU scheduling, which is the basis for multiprogrammed operating systems To describe various CPU-scheduling algorithms To discuss evaluation criteria for sel...
Chapter 5: CPU Scheduling Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018 Objectives To introduce CPU scheduling, which is the basis for multiprogrammed operating systems To describe various CPU-scheduling algorithms To discuss evaluation criteria for selecting a CPU-scheduling algorithm for a particular system To examine the scheduling algorithms of several operating systems Operating System Concepts – 10th Edition 5.2 Silberschatz, Galvin and Gagne ©2018 Basic Concepts Maximum CPU utilization obtained with multiprogramming CPU–I/O Burst Cycle – Process execution consists of a cycle of CPU execution and I/O wait CPU burst followed by I/O burst CPU burst distribution is of main concern Operating System Concepts – 10th Edition 5.3 Silberschatz, Galvin and Gagne ©2018 Schedulers Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocated CPU Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue Long-term scheduler is invoked infrequently (seconds, minutes) (may be slow) The long-term scheduler controls the degree of multiprogramming Processes can be described as either: I/O-bound process – spends more time doing I/O than computations, many short CPU bursts: Examples: Index a file system Short-term scheduler is invoked frequently (milliseconds) (must be fast) CPU-bound process – spends more time doing computations; few very long CPU bursts. Examples: mp3 encoding, Scientific applications Long-term scheduler strives for good process mix Operating System Concepts – 10th Edition 5.4 Silberschatz, Galvin and Gagne ©2018 Addition of Medium-Term Scheduling Medium-term scheduler can be added if degree of multiple programming needs to decrease Remove process from memory, store on disk, bring back in from disk to continue execution: swapping Operating System Concepts – 10th Edition 5.5 Silberschatz, Galvin and Gagne ©2018 Context Switch When CPU switches to another process, the system must save the state of the old process and load the saved state for the new process via a context switch Context of a process represented in the PCB Context-switch time is overhead; the system does no useful work while switching The more complex the OS and the PCB the longer the context switch Operating System Concepts – 10th Edition 5.6 Silberschatz, Galvin and Gagne ©2018 CPU Scheduler Short-term scheduler selects from among the processes in ready queue, and allocates the CPU to one of them Ready Queue may be ordered in various ways 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 under 1 and 4 is nonpreemptive All other scheduling is preemptive Example: interrupts occurring during crucial OS activities Operating System Concepts – 10th Edition 5.7 Silberschatz, Galvin and Gagne ©2018 Dispatcher Dispatcher module gives control of the CPU to the process selected by the short-term scheduler; this involves: switching context switching to user mode jumping to the proper location in the user program to restart that program Dispatch latency – time it takes for the dispatcher to stop one process and start another running Operating System Concepts – 10th Edition 5.8 Silberschatz, Galvin and Gagne ©2018 Scheduling Criteria CPU utilization – Goal is to keep the CPU as busy as possible Throughput – # of processes that complete their execution per time unit Turnaround time – amount of time to execute a particular process –from creation to termination 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 or interactive programs) Operating System Concepts – 10th Edition 5.9 Silberschatz, Galvin and Gagne ©2018 Scheduling Algorithm Optimization Criteria Max CPU utilization Max throughput Min turnaround time Min waiting time Min response time Operating System Concepts – 10th Edition 5.10 Silberschatz, Galvin and Gagne ©2018 Waiting Time Non-Preemptive Scheduling Algorithm Waiting Time = Turn Around Time – Burst Time Preemptive Scheduling Algorithm Turn Around Time = Completion Time – Arrival Time Waiting Time = Turn Around Time – Burst Time Operating System Concepts – 10th Edition 5.11 Silberschatz, Galvin and Gagne ©2018 First- Come, First-Served (FCFS) Scheduling Process Burst Time P1 24 P2 3 P3 3 Suppose that the processes arrive in the order: P1 , P2 , P3 The Gantt Chart for the schedule is: P P 1 0 24 Waiting time for P1 = 0; P2 = 24; P3 = 27 Average waiting time: (0 + 24 + 27)/3 = 17 Operating System Concepts – 10th Edition 5.12 P3 2 27 30 Silberschatz, Galvin and Gagne ©2018 FCFS Scheduling (Cont.) Suppose that the processes arrive in the order: P2 , P3 , P1 The Gantt chart for the schedule is: P 0 P 2 3 P 3 1 6 30 Waiting time for P1 = 6; P2 = 0; P3 = 3 Average waiting time: (6 + 0 + 3)/3 = 3 Much better than previous case Convoy effect - short process behind long process Consider one CPU-bound and many I/O-bound processes Operating System Concepts – 10th Edition 5.13 Silberschatz, Galvin and Gagne ©2018 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 – gives minimum average waiting time for a given set of processes The difficulty is knowing the length of the next CPU request Operating System Concepts – 10th Edition 5.14 Silberschatz, Galvin and Gagne ©2018 Example of SJF ProcessArriva l Time 0.0 6 P2 2.0 8 P3 4.0 7 P4 5.0 3 SJF scheduling chart P 0 P1 Burst Time P 4 3 P3 1 9 P2 16 24 Average waiting time = (3 + 16 + 9 + 0) / 4 = 7 Operating System Concepts – 10th Edition 5.15 Silberschatz, Galvin and Gagne ©2018 Example of Shortest-remaining-time-first (Preemptive) Now we add the concepts of varying arrival times and preemption to the analysis ProcessAarri Arrival TimeT P1 0 8 P2 1 4 P3 2 9 P4 3 5 Preemptive SJF Gantt Chart P 0 Burst Time P 1 1 P4 2 5 P1 10 P3 17 26 Average waiting time = [(10-1)+(1-1)+(17-2)+5-3)]/4 = 26/4 = 6.5 msec Operating System Concepts – 10th Edition 5.16 Silberschatz, Galvin and Gagne ©2018 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) Preemptive Nonpreemptive SJF is priority scheduling where priority is the inverse of predicted next CPU burst time Problem Starvation – low priority processes may never execute Solution Aging – as time progresses increase the priority of the process Operating System Concepts – 10th Edition 5.17 Silberschatz, Galvin and Gagne ©2018 Example of Priority Scheduling ProcessA arri Burst TimeT Priority P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2 Priority scheduling Gantt Chart Average waiting time = 8.2 msec Operating System Concepts – 10th Edition 5.18 Silberschatz, Galvin and Gagne ©2018 Round Robin (RR) Each process gets a small unit of CPU time (time quantum q), 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. Timer interrupts every quantum to schedule next process Performance q large FIFO q small q must be large with respect to context switch, otherwise overhead is too high Operating System Concepts – 10th Edition 5.19 Silberschatz, Galvin and Gagne ©2018 Example of RR with Time Quantum = 4 Process Burst Time P1 24 P2 3 P3 3 The Gantt chart is: P 0 P 1 P 2 4 7 P 3 10 P 1 14 P 1 18 P 1 22 P1 1 26 30 Typically, higher average turnaround than SJF, but better response q should be large compared to context switch time q usually 10ms to 100ms, context switch < 10 usec Operating System Concepts – 10th Edition 5.20 Silberschatz, Galvin and Gagne ©2018 Summary of Scheduling Algorithms FCFS: Not fair, and average waiting time is poor. Round Robin: Fair, but average waiting time is poor. SJF: Not fair, but average waiting time is minimized assuming we can accurately predict the length of the next CPU burst. Starvation is possible. Multilevel Queuing: An implementation (approximation) of SJF. Taken from another book Operating System Concepts – 10th Edition 5.21 Silberschatz, Galvin and Gagne ©2018 End of Chapter 5 Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018