Presentation is loading. Please wait.

Presentation is loading. Please wait.

Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 5: CPU Scheduling.

Similar presentations


Presentation on theme: "Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 5: CPU Scheduling."— Presentation transcript:

1 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 5: CPU Scheduling

2 5.2 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Chapter 5: CPU Scheduling  Basic Concepts  Scheduling Criteria  Scheduling Algorithms  Multiple-Processor Scheduling  Real-Time Scheduling  Thread Scheduling  Operating Systems Examples  Java Thread Scheduling  Algorithm Evaluation

3 5.3 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Definition CPU–I/O Burst Cycle Process execution is a cycle of CPU execution and I/O wait.

4 5.4 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Histogram of CPU-burst Times

5 5.5 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Short-Term Scheduler  Allocates CPU to some proc in the ready queue.  CPU scheduling decisions may take place when a proc: 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

6 5.6 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Dispatcher Kernel Module  Gives control of the CPU to the proc selected by the short-term scheduler by switching context switching to user mode jumping to the proper location in the user program to restart it  Dispatch latency – time it takes for the dispatcher to stop one process and start another.

7 5.7 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Competing Scheduling Criteria  CPU use – keep the CPU as busy as possible  Throughput – # of procs that complete their execution per time unit  Turnaround time – time to execute a particular proc  Waiting time – amount of time a proc has been in ready queue  Response time – amount of time from when a request is submitted by a time-sharing used until the first response (whether it’s output yet or not).

8 5.8 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Optimization Criteria  Max CPU utilization  Max throughput  Min turnaround time  Min waiting time  Min response time

9 5.9 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 First-Come, First-Served (FCFS) Scheduling 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: (0 + 24 + 27)/3 = 17 P1P1 P2P2 P3P3 2427300

10 5.10 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 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: (6 + 0 + 3)/3 = 3  Much better than previous case  Convoy effect short process behind long process P1P1 P3P3 P2P2 63300

11 5.11 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Shortest-Job-First (SJF) Scheduling  Associate with each proc the length of its next CPU burst. Schedule proc with the shortest time.  nonpreemptive – once CPU given to the process it cannot be preempted until completes its CPU burst.  preemptive – if a new process arrives with CPU burst length less than remaining time of current executing process, preempt. Called: Shortest-Remaining-Time-First (SRTF)  SJF is optimal – gives min average waiting time for a given set of procs

12 5.12 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 ProcessArrival TimeBurst Time P 1 0.07 P 2 2.04 P 3 4.01 P 4 5.04  SJF (non-preemptive)  Average waiting time = (0 + 6 + 3 + 7)/4 = 4 Example of Non-Preemptive SJF P1P1 P3P3 P2P2 73160 P4P4 812

13 5.13 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Shortest Remaining Time First (SRTF) ProcessArrival TimeBurst Time P 1 0.07 P 2 2.04 P 3 4.01 P 4 5.04  SJF (preemptive)  Average waiting time = (9 + 1 + 0 +2)/4 = 3 P1P1 P3P3 P2P2 42 11 0 P4P4 57 P2P2 P1P1 16

14 5.14 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Determining Length of Next CPU Burst  Can only estimate the length  Can be done by using the length of previous CPU bursts, using exponential averaging

15 5.15 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Prediction of the Length of the Next CPU Burst  = ½

16 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Read to page 183 for Wednesday

17 5.17 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Examples of 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

18 5.18 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 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 a priority scheduling where priority is the predicted next CPU burst time  Problem  Starvation – low priority processes may never execute  Solution  Aging – as time progresses increase the priority of the process

19 5.19 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Round Robin (RR)  Each process gets a small unit of CPU time (time quantum), 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.  Performance q large  FIFO q small  q must be large with respect to context switch, otherwise overhead is too high

20 5.20 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Example of RR with Time Quantum = 20 ProcessBurst Time P 1 53 P 2 17 P 3 68 P 4 24  The Gantt chart is:  Typically, higher average turnaround than SJF, but better response P1P1 P2P2 P3P3 P4P4 P1P1 P3P3 P4P4 P1P1 P3P3 P3P3 02037577797117121134154162

21 5.21 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Time Quantum and Context Switch Time

22 5.22 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Turnaround Time Varies With The Time Quantum

23 5.23 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Multilevel Queue  Ready queue is partitioned into separate queues: foreground (interactive) background (batch)  Each queue has its own scheduling algorithm foreground – RR background – FCFS  Scheduling must be done between the queues Fixed priority scheduling; (i.e., serve all from foreground then from background). Possibility of starvation. Time slice – each queue gets a certain amount of CPU time which it can schedule amongst its processes; i.e., 80% to foreground in RR 20% to background in FCFS

24 5.24 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Multilevel Queue Scheduling joke

25 5.25 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Multilevel Feedback Queue  A process can move between the various queues; aging can be implemented this way  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

26 5.26 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 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.

27 5.27 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Multilevel Feedback Queues

28 5.28 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Multiple-Processor Scheduling  CPU scheduling more complex when multiple CPUs are available  Homogeneous processors within a multiprocessor  Load sharing  Asymmetric multiprocessing – only one processor accesses the system data structures, alleviating the need for data sharing

29 5.29 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Real-Time Scheduling  Hard real-time systems – required to complete a critical task within a guaranteed amount of time  Soft real-time computing – requires that critical processes receive priority over less fortunate ones

30 5.30 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Thread Scheduling  Local Scheduling – How the threads library decides which thread to put onto an available LWP  Global Scheduling – How the kernel decides which kernel thread to run next

31 5.31 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Pthread Scheduling API

32 5.32 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Operating System Examples  Solaris scheduling  Windows XP scheduling  Linux scheduling

33 5.33 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Solaris Scheduling

34 5.34 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Solaris Dispatch Table

35 5.35 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Windows XP Priorities user decides OS decides Base pri

36 5.36 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Linux Scheduling  Two algorithms: time-sharing and real-time  Time-sharing Prioritized credit-based – process with most credits is scheduled next Credit subtracted when timer interrupt occurs When credit = 0, another process chosen When all processes have credit = 0, recrediting occurs  Based on factors including priority and history  Real-time Soft real-time Posix.1b compliant – two classes  FCFS and RR  Highest priority process always runs first

37 5.37 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 The Relationship Between Priorities and Time-slice length

38 5.38 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 List of Tasks Indexed According to Priorities

39 5.39 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Scheduling  Loosely-defined scheduling policy. A thread runs until: 1. It’s time quantum expires 2. It blocks for I/O 3. It exits its run() method Some systems may support preemption

40 5.40 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Scheduling  Priorities - values range from 1-10  MIN_PRIORITY is 1  NORM_PRIORITY is 5  MAX_PRIORITY is 10

41 5.41 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Scheduling Changing priority using setPriority()

42 5.42 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Scheduling Relationship between Java and Win32 Priorities

43 5.43 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Java Scheduling Java thread scheduling on Solaris

44 5.44 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Algorithm Evaluation  Modeling (uses simulated loads) Deterministic — takes a particular predetermined workload and defines the performance of each algorithm for that workload Stochastic — Queueing  Experimentation (uses actual loads) Implementation Steven Robbins of University of Texas, San Antonio has a good CPU scheduling simulator for pedagogical use. http://vip.cs.utsa.edu/simulators/

45 5.45 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Algorithm Evaluation Evaluation of CPU schedulers by simulation

46 5.46 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Algorithm Evaluation

47 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 End of Chapter 5


Download ppt "Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 5: CPU Scheduling."

Similar presentations


Ads by Google