0% found this document useful (0 votes)
117 views54 pages

Chapter 5: CPU Scheduling: Silberschatz, Galvin and Gagne ©2018 Operating System Concepts - 10 Edition

Uploaded by

221020
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
117 views54 pages

Chapter 5: CPU Scheduling: Silberschatz, Galvin and Gagne ©2018 Operating System Concepts - 10 Edition

Uploaded by

221020
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 54

Chapter 5: CPU Scheduling

Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Objectives

 To introduce CPU scheduling, which is the basis for multi-programmed


OS’s

 To describe various CPU scheduling algorithms

 To discuss evaluation criteria for selecting a CPU scheduling algorithm


for a particular system

Operating System Concepts – 10th Edition 5.2 Silberschatz, Galvin and Gagne ©2018
Basic Concepts

Operating System Concepts – 10th Edition 5.3 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.4 Silberschatz, Galvin and Gagne ©2018
Histogram of CPU-burst Times

Operating System Concepts – 10th Edition 5.5 Silberschatz, Galvin and Gagne ©2018
CPU Scheduler

 Short-term (or CPU) scheduler selects from the processes in the


ready queue, and allocates the CPU to one of them
 Queue may be ordered in various ways

 Process 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
2
4. Terminates 4
new ready running terminat.

***

3 1
 Scheduling in 1 & 4 is non-preemptive
waiting
 All other scheduling is preemptive

Operating System Concepts – 10th Edition 5.6 Silberschatz, Galvin and Gagne ©2018
Scheduling and Optimization Criteria

Operating System Concepts – 10th Edition 5.7 Silberschatz, Galvin and Gagne ©2018
Scheduling Criteria

 CPU utilization – 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

 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

Operating System Concepts – 10th Edition 5.8 Silberschatz, Galvin and Gagne ©2018
Optimization Criteria

 Maximize:
 CPU utilization
 Throughput

 Minimize:
 Turnaround time
 Waiting time
 Response time

Operating System Concepts – 10th Edition 5.9 Silberschatz, Galvin and Gagne ©2018
CPU Scheduling Algorithms

Operating System Concepts – 10th Edition 5.10 Silberschatz, Galvin and Gagne ©2018
CPU Scheduling Algorithms

 Non-preemptive:
 First-come, first-served (FCFS)
 Shortest job first (SJF)
 Priority

 Preemptive:
 Shortest remaining time first (SRTF)
 Priority
 Round robin

Operating System Concepts – 10th Edition 5.11 Silberschatz, Galvin and Gagne ©2018
First-Come, First-Served (FCFS)

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
 Average turnaround time = ((24-0) + (27-0) + (30-0)) / 3 = …

Operating System Concepts – 10th Edition 5.12 Silberschatz, Galvin and Gagne ©2018
FCFS (Cont.)

Suppose that the processes arrive in the order:


P 2 , P3 , P 1
 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
 Average turnaround time = ((30-0) + (3-0) + (6-0)) / 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)

 Also called “Shortest Job Next (SJN)”

 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

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


 Average turnaround time = (9 + 24 + 16 + 3) / 4

Operating System Concepts – 10th Edition 5.15 Silberschatz, Galvin and Gagne ©2018
Example of SJF

ProcessArrival Time Burst Time Arrival Time


P1 0.0 6 2
P2 2.0 8 2
P3 4.0 7 3
P4 5.0 3 3

 SJF scheduling chart

 Average waiting time = ((2-2) + (18-2) + (11-3) + (8-3)) / 4 =


 Average turnaround time = ((8-2) + (26-2) + (18-3) + (11-3)) / 4

Operating System Concepts – 10th Edition 5.16 Silberschatz, Galvin and Gagne ©2018
Predicting the 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

1. t n  actual length of n th CPU burst


2.  n 1  predicted value for the next CPU burst
3.  , 0    1
4. Define :  n 1   t n  1    n .

 Commonly, α set to ½

Operating System Concepts – 10th Edition 5.17 Silberschatz, Galvin and Gagne ©2018
Predicting the Next CPU Burst

Operating System Concepts – 10th Edition 5.18 Silberschatz, Galvin and Gagne ©2018
Shortest Remaining Time First (SRT)

 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 = [((0-0)+(10-1))+(1-1)+(17-2)+(5-3)]/4 = 26/4 =


6.5
 Average turnaround time = [(17-0) + (5-1) + (26-2) + (10-3)] / 4 =

Operating System Concepts – 10th Edition 5.19 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
 Non-preemptive

 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.20 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 = [(6-0) + (0-0) + (16-0) + (18-0) + (1-0)] / 5


 Average turnaround time = [(16-0) + (1-0) + (18-0) + (19-0) + (6-0)] / 5

Operating System Concepts – 10th Edition 5.21 Silberschatz, Galvin and Gagne ©2018
Example of Preemptive Priority
Scheduling

Process AT Burst Time Priority


P1 1 10 3
P2 2 1 1
P3 7 2 3
P4 22 5 4
P5 23 5 2

Operating System Concepts – 10th Edition 5.22 Silberschatz, Galvin and Gagne ©2018
Example of Preemptive Priority
Scheduling

Process AT
P1 1
P2 2
P3 7
P4 22
P5 23

Operating System Concepts – 10th Edition 5.23 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.24 Silberschatz, Galvin and Gagne ©2018
Example of RR with q = 4

Process Burst Time


P1 24
P2 3
P3 3
 The Gantt chart is:

P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 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.25 Silberschatz, Galvin and Gagne ©2018
“q” & Context Switch Time

Operating System Concepts – 10th Edition 5.26 Silberschatz, Galvin and Gagne ©2018
Turnaround Time Varies with “q”

80% of CPU bursts


should be shorter than q

Operating System Concepts – 10th Edition 5.27 Silberschatz, Galvin and Gagne ©2018
Multilevel Queue
 Ready queue is partitioned into separate queues, e.g.:
 foreground (interactive)
 background (batch)

 Each queue has its own scheduling algorithm, e.g.:


 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; e.g., 80% to foreground in RR
& 20% to background in FCFS

Operating System Concepts – 10th Edition 5.28 Silberschatz, Galvin and Gagne ©2018
Multilevel Queue

Operating System Concepts – 10th Edition 5.29 Silberschatz, Galvin and Gagne ©2018
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

Operating System Concepts – 10th Edition 5.30 Silberschatz, Galvin and Gagne ©2018
Example of Multilevel Feedback Queue

 Three queues:
 Q0 – RR with time quantum 8
milliseconds
 Q1 – RR time quantum 16 milliseconds
 Q2 – FCFS

 Scheduling
 A new job enters queue Q0 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 Q1
 At Q1 job is again served FCFS and
receives 16 additional milliseconds
 If it still does not complete, it is
preempted and moved to queue Q2

Operating System Concepts – 10th Edition 5.31 Silberschatz, Galvin and Gagne ©2018
Operating System Concepts – 10th Edition 5.32 Silberschatz, Galvin and Gagne ©2018
Thread Scheduling

Operating System Concepts – 10th Edition 5.33 Silberschatz, Galvin and Gagne ©2018
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 on LWP
 Known as process-contention scope (PCS) since scheduling
competition is within the process
 Typically done via priority set by programmer

 Kernel thread scheduled onto available CPU is system-contention


scope (SCS) – competition among all threads in system

Operating System Concepts – 10th Edition 5.34 Silberschatz, Galvin and Gagne ©2018
Multiple-Processor Scheduling

Operating System Concepts – 10th Edition 5.35 Silberschatz, Galvin and Gagne ©2018
Multiple-Processor (MP) Scheduling
 CPU scheduling is 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
 Currently, most common
 Processor affinity – process has affinity for processor on which it is
currently running
 soft affinity
 hard affinity
 Variations including processor sets

Operating System Concepts – 10th Edition 5.36 Silberschatz, Galvin and Gagne ©2018
MP Scheduling – Load Balancing

 If SMP, need to keep all CPUs loaded for efficiency

 Load balancing attempts to keep workload evenly distributed

 Push migration – periodic task checks load on each processor, and if


found pushes task from overloaded CPU to other CPUs

 Pull migration – idle processors pulls waiting task from busy processor

Operating System Concepts – 10th Edition 5.37 Silberschatz, Galvin and Gagne ©2018
Multicore Processors

 Recent trend to place multiple processor cores on same physical chip

 Faster and consumes less power

 Multiple threads per core also growing


 Takes advantage of memory stall to make progress on another
thread while memory retrieve happens

Operating System Concepts – 10th Edition 5.38 Silberschatz, Galvin and Gagne ©2018
Multithreaded Multicore System

Operating System Concepts – 10th Edition 5.39 Silberschatz, Galvin and Gagne ©2018
Real-Time CPU Scheduling

Operating System Concepts – 10th Edition 5.40 Silberschatz, Galvin and Gagne ©2018
Real-Time CPU Scheduling

 Can present obvious


challenges
 Soft real-time systems – no
guarantee as to when critical
real-time process will be
scheduled
 Hard real-time systems –
task must be serviced by its
deadline
 Two types of latencies affect
performance
1. Interrupt latency – time from
arrival of interrupt to start of
routine that services interrupt
2. Dispatch latency – time for
scheduler to take current process
off CPU and switch to another

Operating System Concepts – 10th Edition 5.41 Silberschatz, Galvin and Gagne ©2018
Real-Time CPU Scheduling (Cont.)

 Rate-Montonic Scheduling

 A priority is assigned based on the inverse of the period

 Shorter periods = higher priority

 Longer periods = lower priority

 P1 is assigned a higher priority than P2

Operating System Concepts – 10th Edition 5.42 Silberschatz, Galvin and Gagne ©2018
Missed Deadlines with
Rate-Monotonic Scheduling

Operating System Concepts – 10th Edition 5.43 Silberschatz, Galvin and Gagne ©2018
Real-Time CPU Scheduling (Cont.)

 Earliest Deadline First Scheduling (EDF)


 Priorities are assigned according to deadlines:
 the earlier the deadline, the higher the priority;
 the later the deadline, the lower the priority

Operating System Concepts – 10th Edition 5.44 Silberschatz, Galvin and Gagne ©2018
Real-Time CPU Scheduling (Cont.)

 Proportional Share Scheduling

 T shares are allocated among all processes in the system


 An application receives N shares where N < T
 This ensures each application will receive N / T of the total
processor time

Operating System Concepts – 10th Edition 5.45 Silberschatz, Galvin and Gagne ©2018
Evaluation of Scheduling Algorithms

Operating System Concepts – 10th Edition 5.46 Silberschatz, Galvin and Gagne ©2018
Algorithm Evaluation
 How to select CPU-scheduling algorithm for an OS?

 Determine criteria, then evaluate algorithms

 Deterministic modeling
 Type of analytic evaluation
 Takes a particular predetermined workload and defines the
performance of each algorithm for that workload

 Consider 5 processes arriving at time 0:

Operating System Concepts – 10th Edition 5.47 Silberschatz, Galvin and Gagne ©2018
Deterministic Evaluation

 For each algorithm, calculate minimum average waiting time


 Simple and fast, but requires exact numbers for input

 FCS is 28ms:

 Non-preemptive SFJ is 13ms:

 RR is 23ms:

Operating System Concepts – 10th Edition 5.48 Silberschatz, Galvin and Gagne ©2018
Queueing Models

 Describes the arrival of processes, and CPU and I/O bursts


probabilistically
 Commonly exponential, and described by mean
 Computes average throughput, utilization, waiting time, etc.

 Computer system described as network of servers, each with queue of


waiting processes
 Knowing arrival rates and service rates
 Computes utilization, average queue length, average wait time, etc.

Operating System Concepts – 10th Edition 5.49 Silberschatz, Galvin and Gagne ©2018
Little’s Formula

 n = average queue length


 W = average waiting time in queue
 λ = average arrival rate into queue

 Little’s law – in steady state, processes leaving queue must equal


processes arriving, thus:
n=λxW
 Valid for any scheduling algorithm and arrival distribution

 For example, if on average 7 processes arrive per second, and


normally 14 processes in queue, then average wait time per process =
2 seconds

Operating System Concepts – 10th Edition 5.50 Silberschatz, Galvin and Gagne ©2018
Simulations

 Queueing models are limited

 Simulations are more accurate


 Programmed model of computer system
 Clock is a variable
 Gather statistics indicating algorithm performance
 Data to drive simulation gathered via
 Random number generator according to probabilities
 Distributions defined mathematically or empirically
 Trace tapes record sequences of real events in real systems

Operating System Concepts – 10th Edition 5.51 Silberschatz, Galvin and Gagne ©2018
Simulations (Cont.)

Operating System Concepts – 10th Edition 5.52 Silberschatz, Galvin and Gagne ©2018
Implementation

 Even simulations have limited accuracy

 Just implement new scheduler and test in real systems


 High cost, high risk
 Environments vary

Operating System Concepts – 10th Edition 5.53 Silberschatz, Galvin and Gagne ©2018
End of Chapter 5

Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018

You might also like