Chapter 6: CPU Scheduling

Chapter 6: CPU Scheduling

Chapter 6: CPU Scheduling Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013 Chapter 6: CPU Scheduling ■ Basic Concepts ■ Scheduling Criteria ■ Scheduling Algorithms ■ Thread Scheduling ■ Multiple-Processor Scheduling ■ Real-Time CPU Scheduling ■ Operating Systems Examples ■ Algorithm Evaluation Operating System Concepts – 9th Edition 6.2 Silberschatz, Galvin and Gagne ©2013 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 – 9th Edition 6.3 Silberschatz, Galvin and Gagne ©2013 Basic Concepts • ■ Maximum CPU utilization obtained with • multiprogramming. • load store add store CPU burst read from file ■ CPU–I/O Burst Cycle – Process execution consists of a cycle of CPU execution and I/O wait for I/O I/O burst wait store increment ■ CPU burst followed by I/O burst index CPU burst write to file ■ CPU burst distribution is of main concern wait for I/O I/O burst ■ An I/O-bound program typically has many short load store CPU bursts. A CPU-bound program might have add store CPU burst read from file a few long CPU bursts. This distribution can be important in the selection of an appropriate wait for I/O I/O burst CPU-scheduling algorithm. • • • Operating System Concepts – 9th Edition 6.4 Silberschatz, Galvin and Gagne ©2013 Histogram of CPU-burst Times Operating System Concepts – 9th Edition 6.5 Silberschatz, Galvin and Gagne ©2013 CPU Scheduler ■ Short-term scheduler selects from among the processes in ready queue, and allocates the CPU to one of them ● Queue may be ordered in various ways(FIFO queue, priority queue, a tree, or linked list) (Based on the scheduling algorithms we are going to see next). ■ 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 ● Consider access to shared data ● Consider preemption while in kernel mode ● Consider interrupts occurring during crucial OS activities Operating System Concepts – 9th Edition 6.6 Silberschatz, Galvin and Gagne ©2013 Dispatcher ■ Another component involved in the CPU-scheduling function ■ 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 – 9th Edition 6.7 Silberschatz, Galvin and Gagne ©2013 Scheduling Criteria ■ CPU utilization – keep the CPU as busy as possible Conceptually, CPU utilization can range from 0 to 100 percent. In a real system, it should range from 40 percent (for a lightly loaded system) to 90 percent (for a heavily loaded system). ■ Throughput – # of processes that complete their execution per time unit For long processes, this rate may be one process per hour; for short transactions, it may be ten processes per second. ■ 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 – 9th Edition 6.8 Silberschatz, Galvin and Gagne ©2013 Scheduling Algorithm Optimization Criteria ■ Max CPU utilization ■ Max throughput ■ Min turnaround time ■ Min waiting time ■ Min response time Operating System Concepts – 9th Edition 6.9 Silberschatz, Galvin and Gagne ©2013 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: P1 P2 P3 0 24 27 30 ■ Waiting time for P1 = 0; P2 = 24; P3 = 27 ■ Average waiting time: (0 + 24 + 27)/3 = 17 Operating System Concepts – 9th Edition 6.10 Silberschatz, Galvin and Gagne ©2013 FCFS Scheduling (Cont.) Suppose that the processes arrive in the order: P2 , P3 , P1 ■ The Gantt chart for the schedule is: P2 P3 P1 0 3 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 – 9th Edition 6.11 Silberschatz, Galvin and Gagne ©2013 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 ● Could ask the user Operating System Concepts – 9th Edition 6.12 Silberschatz, Galvin and Gagne ©2013 Example of SJF ProcessArrival Time Burst Time P1 0.0 6 P2 2.0 8 P3 4.0 7 P4 5.0 3 ■ SJF scheduling chart P4 P1 P3 P2 0 3 9 16 24 ■ Average waiting time = (3 + 16 + 9 + 0) / 4 = 7 Operating System Concepts – 9th Edition 6.13 Silberschatz, Galvin and Gagne ©2013 Determining Length of Next CPU Burst ■ Can only estimate the length – should be similar to the previous one ● Then pick process with shortest predicted next CPU burst ■ Can be done by using the length of previous CPU bursts, using exponential averaging th 1. tn = actual length of n CPU burst 2. t n+1 = predicted value for the next CPU burst 3. a, 0 £ a £ 1 4. Define : ■ Commonly, α set to ½ ■ The SJF algorithm can be either preemptive or nonpreemptive. ■ Preemptive version called shortest-remaining-time-first Operating System Concepts – 9th Edition 6.14 Silberschatz, Galvin and Gagne ©2013 Examples of Exponential Averaging The value of tn contains our most recent information, while �n stores the past history. The parameter � controls the relative weight of recent and past history in our prediction. ■ a =0 ● tn+1 = tn ● Recent history does not count ■ a =1 ● tn+1 = a tn ● Only the actual last CPU burst counts, (history is assumed to be old and irrelevant). Operating System Concepts – 9th Edition 6.15 Silberschatz, Galvin and Gagne ©2013 Prediction of the Length of the Next CPU Burst 12 τi 10 8 ti 6 4 2 time CPU burst (ti) 6 4 6 4 13 13 13 … "guess" (τi) 108 6 6 5 9 11 12 … an exponential average with �= 1/2 and �0 = 10. Operating System Concepts – 9th Edition 6.16 Silberschatz, Galvin and Gagne ©2013 Determining Length of Next CPU Burst ■ The SJF algorithm can be either preemptive or non-preemptive. ■ The choice arises when a new process arrives at the ready queue while a previous process is still executing. The next CPU burst of the newly arrived process may be shorter than what is left of the currently executing process. A preemptive SJF algorithm will preempt the currently executing process, whereas a non-preemptive SJF algorithm will allow the currently running process to finish its CPU burst. ■ Preemptive version called shortest-remaining-time-first Operating System Concepts – 9th Edition 6.17 Silberschatz, Galvin and Gagne ©2013 Example of Shortest-remaining-time-first ■ Now we add the concepts of varying arrival times and preemption to the analysis ProcessAarri Arrival TimeT Burst Time P1 0 8 P2 1 4 P3 2 9 P4 3 5 ■ Preemptive SJF Gantt Chart P1 P2 P4 P1 P3 0 1 5 10 17 26 ■ Average waiting time = [(10-1)+(1-1)+(17-2)+(5-3)]/4 = 26/4 = 6.5 msec Operating System Concepts – 9th Edition 6.18 Silberschatz, Galvin and Gagne ©2013 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) ■ Equal-priority processes are scheduled in FCFS order. ● Preemptive ● Nonpreemptive When a process arrives at the ready queue, its priority is compared with the priority of the currently running process. A preemptive priority scheduling algorithm will preempt the CPU if the priority of the newly arrived process is higher than the priority of the currently running process. A nonpreemptive priority scheduling algorithm will simply put the new process at the head of the ready queue. ■ SJF is priority scheduling where priority is the inverse of predicted next CPU burst time, the larger the CPU burst, the lower the priority, and vice versa. ■ Problem º Starvation – low priority processes may never execute ■ Solution º Aging – as time progresses increase the priority of the process Operating System Concepts – 9th Edition 6.19 Silberschatz, Galvin and Gagne ©2013 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 – 9th Edition 6.20 Silberschatz, Galvin and Gagne ©2013 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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    70 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us