Presentation is loading. Please wait.

Presentation is loading. Please wait.

Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 5: CPU Scheduling.

Similar presentations


Presentation on theme: "Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 5: CPU Scheduling."— Presentation transcript:

1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 5: CPU Scheduling

2 5.2 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 5: CPU Scheduling Basic Concepts Scheduling Criteria Scheduling Algorithms Thread Scheduling Multiple-Processor Scheduling Operating Systems Examples Algorithm Evaluation

3 5.3 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

4 5.4 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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 Always starts with a burst (first instruction) and ends with a burst (request to terminate process) CPU burst distribution

5 5.5 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Histogram of CPU-burst Times

6 5.6 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition CPU Scheduler (short term) Selects from among the processes in memory that are ready to execute, and allocates the CPU to one of them CPU scheduling decisions may take place when a process: 1.Switches from running to waiting state (e.g., waiting for a child to terminate) 2.Switches from running to ready state (e.g., due to interrupt) 3.Switches from waiting to ready (e.g., in completion of I/O) 4.Terminates Scheduling under 1 and 4 is nonpreemptive Once CPU has been allocated to a process, the process keeps the CPU until it releases the CPU either by terminating or by switching to “waiting” state All other scheduling is preemptive Incurs a cost associated with access to shared data

7 5.7 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

8 5.8 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Scheduling Criteria CPU utilization – keep the CPU as busy as possible (40-90%) Throughput – # of processes that complete their execution per time unit Turnaround time – amount of time to execute a particular process, includes: Time spent waiting to get into memory Waiting in the ready queue Executing on CPU Doing I/O Waiting time – amount of time a process has been waiting in the ready queue (this is the only time affected by the scheduling algorithm) 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)

9 5.9 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Scheduling Algorithm Optimization Criteria Max CPU utilization Max throughput Min turnaround time Min waiting time Min response time More complex - minmax For interactive systems – minimize the variance in the response time

10 5.10 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition First-Come, First-Served (FCFS) Scheduling The simplest to implement! 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

11 5.11 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 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: (6 + 0 + 3)/3 = 3 Much better than previous case Convoy effect short process behind long process -> lower device utilization FCFS is nonpreemptive P1P1 P3P3 P2P2 63300

12 5.12 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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 Two schemes: 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. This scheme is know as the Shortest-Remaining-Time-First (SRTF)

13 5.13 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

14 5.14 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Example of Preemptive SJF 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

15 5.15 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition SJF Insights It is actually “shortest-burst first”… SJF gives minimum average waiting time for a given set of processes (moving a short process before a long one decreases the waiting time of the short process more than it increases the waiting time of the long process) The difficulty is knowing the length of the next CPU request Ideal for long term scheduler if the user is asked to estimate the processing time: Lower estimate – resubmission Higher estimate – job will be delayed in scheduling

16 5.16 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

17 5.17 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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 ©2009 Operating System Concepts – 8 th Edition Prediction of the Length of the Next CPU Burst Question: what is the alpha used here?

19 5.19 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 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) Preemptive nonpreemptive SJF is a priority scheduling where priority is the predicted next CPU burst time Problem  Starvation – low priority processes may never execute (MIT example) Solution  Aging – as time progresses increase the priority of the process

20 5.20 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Round Robin (RR) Designed especially for time-sharing systems 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

21 5.21 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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 53 17 68 24 33 17 68 24 33 0 68 24 33 0 48 24 33 0 48 4 13 0 48 4 13 0 28 4 13 0 28 0 28 0 00800080 00000000

22 5.22 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Time Quantum and Context Switch Time Performance of RR depends on the size of the time quantum:

23 5.23 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Turnaround Time Varies With The Time Quantum 1 5 10 1: 12341241241414144 2: 11223441124411444 3: 11122234441114444

24 5.24 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition 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

25 5.25 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Multilevel Queue Scheduling In this example every queue has full priority over lower- level queues (guaranteed with preemptive scheduling)

26 5.26 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Multilevel Feedback Queue The idea – separate processes according to the characteristics of their CPU bursts 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 to a higher priority queue method used to determine when to demote a process to a lower priority queue method used to determine which queue a process will enter when that process needs service

27 5.27 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 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.

28 5.28 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Multilevel Feedback Queues Gets CPU time only if queue 0 is empty Gets CPU time only if queue 1 is empty

29 5.29 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Relations What (if any) relation holds between the following pairs of sets of algorithms? Priority and SJF -> The shortest job has the highest priority Multilevel feedback queues and FCFS -> The lowest level of MLFQ is FCFS. Priority and FCFS -> FCFS gives the highest priority to the job having been in existence the longest.

30 5.30 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Multiple-Processor Scheduling CPU scheduling more complex when multiple CPUs are available Homogeneous processors within a multiprocessor Asymmetric multiprocessing – only one processor accesses the system data structures, alleviating the need for data sharing Symmetric multiprocessing (SMP) – each processor is self-scheduling, all processes in common ready queue, or each has its own private queue of ready processes Processor affinity – process has affinity for processor on which it is currently running (main reason – to avoid caching re-population) soft affinity – no guarantee that the same processor is used hard affinity – a process can specify that it doesn’t want to migrate to other processes while running

31 5.31 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Real-Time Scheduling Hard real-time systems – required to complete a critical task within a guaranteed amount of time Process submitted with a deadline statement Scheduler either guarantees (resource reservation) or rejects Soft real-time computing – requires that critical processes receive priority over less fortunate ones

32 5.32 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Algorithm Evaluation Deterministic modeling – takes a particular predetermined workload and defines the performance of each algorithm for that workload Queuing models Simulation Implementation

33 5.33 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Evaluation of CPU schedulers by Simulation

34 5.34 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Thread Scheduling Distinction between user-level and kernel-level threads Many-to-one and many-to-many models, thread library schedules user-level threads to run Known as process-contention scope (PCS) since scheduling competition is within the process Kernel thread scheduled onto available CPU is system-contention scope (SCS) – competition among all threads in system

35 5.35 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Pthread Scheduling API allows specifying either PCS or SCS during thread creation PTHREAD SCOPE PROCESS schedules threads using PCS scheduling PTHREAD SCOPE SYSTEM schedules threads using SCS scheduling.

36 5.36 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Operating System Examples Solaris scheduling Windows XP scheduling Linux scheduling

37 5.37 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Solaris Scheduling Default scheduling class for a process is time-sharing Policy for time sharing assigns time slices of different slices using multi-level feedback queue Inverse relationship between priorities and time slices (the higher the priority, the lower the time slice) Interactive processes usually have a higher priority CPU bounded processes – lower priority

38 5.38 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Solaris Dispatch Table (interactive threads) 60 classes of priority, higher number = higher priority New priority when returning from I/O New priority if entire quantum was used without blocking

39 5.39 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Solaris Scheduling

40 5.40 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Windows XP Scheuling Uses a priority-based preemptive scheduling algorithm Ensures the highest priority thread always run Priorities are divided into two classes (variable class 1-15 and real-time class 16-31) Priorities can change along execution

41 5.41 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Windows XP Priorities Priority classes to a process Within each priority class there is a relative priority

42 5.42 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Linux Scheduling Preemptive, priority-based algorithm Two priority ranges: time-sharing and real-time Real-time range from 0 to 99 and others from 100 to 140 (different from Unix and WinXP)

43 5.43 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition List of Tasks Indexed According to Priorities (some time remaining in the time slice) When active array queue becomes empty the two queues exchange roles

44 5.44 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Java Thread Scheduling JVM Uses a Preemptive, Priority-Based Scheduling Algorithm FIFO Queue is Used if There Are Multiple Threads With the Same Priority JVM Schedules a Thread to Run When: 1. The Currently Running Thread Exits the Runnable State 2. A Higher Priority Thread Enters the Runnable State * Note – the JVM Does Not Specify Whether Threads are Time-Sliced or Not

45 5.45 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition

46 5.46 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition

47 5.47 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition

48 5.48 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition

49 5.49 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition

50 5.50 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition

51 5.51 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition


Download ppt "Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 5: CPU Scheduling."

Similar presentations


Ads by Google