Chapter 5: CPU Scheduling
Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009
Outline: CPU Scheduling
● Basic Concepts
● Scheduling Criteria
● Scheduling Algorithms
● Algorithm Evaluation
Operating System Concepts – 8th Edition 5.2 Silberschatz, Galvin and Gagne ©2009
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
Operating System Concepts – 8th Edition 5.3 Silberschatz, Galvin and Gagne ©2009
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 distribution
Operating System Concepts – 8th Edition 5.4 Silberschatz, Galvin and Gagne ©2009
Alternating Sequence of CPU and
I/O Bursts
Operating System Concepts – 8th Edition 5.5 Silberschatz, Galvin and Gagne ©2009
Histogram of CPU-burst Times
Operating System Concepts – 8th Edition 5.6 Silberschatz, Galvin and Gagne ©2009
CPU Scheduler
● Selects from among the processes in ready queue, and allocates the CPU to one of them
● Queue may be ordered in various ways
● CPU scheduling decisions may take place when a process:
1. Switches from running to waiting state(in case of I/O request)
2. Switches from running to ready state(in case of interrupt)
3. Switches from waiting to ready(in case of I/O completion)
4. When a process 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
● Non-preemptive- Once CPU is assigned to a process, it remains with it until it releases CPU on
termination or entering a waiting state
● All other scheduling is preemptive
Operating System Concepts – 8th Edition 5.7 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 5.8 Silberschatz, Galvin and Gagne ©2009
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, not output (for time-sharing environment)
Operating System Concepts – 8th Edition 5.9 Silberschatz, Galvin and Gagne ©2009
Scheduling Algorithm Optimization Criteria
● Max CPU utilization
● Max throughput
● Min turnaround time
● Min waiting time
● Min response time
Operating System Concepts – 8th Edition 5.10 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 5.11 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 5.12 Silberschatz, Galvin and Gagne ©2009
Example
Process Id Arrival time Burst time
P1 3 4
P2 5 3
P3 0 2
P4 5 1
P5 4 3
Operating System Concepts – 8th Edition 5.13 Silberschatz, Galvin and Gagne ©2009
Solution
Operating System Concepts – 8th Edition 5.14 Silberschatz, Galvin and Gagne ©2009
Cont…
Process Exit time Turn Around Waiting time
Id time
P1 7 7–3=4 4–4=0
P2 13 13 – 5 = 8 8–3=5
P3 2 2–0=2 2–2=0
P4 14 14 – 5 = 9 9–1=8
P5 10 10 – 4 = 6 6–3=3
● Turn Around time = Exit time – Arrival time
● Waiting time = Turn Around time – Burst time
● Average Turn Around time = (4 + 8 + 2 + 9 + 6) / 5 = 29 / 5 = 5.8 unit
● Average waiting time = (0 + 5 + 0 + 8 + 3) / 5 = 16 / 5 = 3.2 unit
Operating System Concepts – 8th Edition 5.15 Silberschatz, Galvin and Gagne ©2009
Question
Process Id Arrival time Burst time
P1 0 2
P2 3 1
P3 5 6
Operating System Concepts – 8th Edition 5.16 Silberschatz, Galvin and Gagne ©2009
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 r
● equest
● Could ask the user
Operating System Concepts – 8th Edition 5.17 Silberschatz, Galvin and Gagne ©2009
Example of SJF
ProcessArriBurst 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 – 8th Edition 5.18 Silberschatz, Galvin and Gagne ©2009
Shortest-remaining-time-first(Preemptive)
● Now we add the concepts of varying arrival times and preemption to the analysis
ProcessA arri 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 – 8th Edition 5.19 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 5.20 Silberschatz, Galvin and Gagne ©2009
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
P2 P5 P1 P3 P4
0 1 6 16
18 19
● Average waiting time = 8.2 msec
Operating System Concepts – 8th Edition 5.21 Silberschatz, Galvin and Gagne ©2009
Example-Preemptive priority
ProcessA arri Burst TimeT Priority Arrival Time
P1 4 1 0
P2 3 2 0
P3 7 1 6
P4 4 3 11
P5 2 2 12
P1 P2 P3 P2 P5 P4
0 4 6 13 14 16 20
Average WT= Exit time - burst time
= (0 + ((4-0)+(13-6)) + (6-6) +(16-11) + (14-12))/5=3.6 ms
Average TAT=Exit time- Arrival Time =(4-0) +(14-0)+(13-6)+(20-11)+(16-12)=35/5=7ms
Operating System Concepts – 8th Edition 5.22 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 5.23 Silberschatz, Galvin and Gagne ©2009
Example of RR with Time Quantum = 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 – 8th Edition 5.24 Silberschatz, Galvin and Gagne ©2009
Time Quantum and Context Switch Time
Operating System Concepts – 8th Edition 5.25 Silberschatz, Galvin and Gagne ©2009
Turnaround Time Varies With
The Time Quantum
80% of CPU bursts should
be shorter than q
Operating System Concepts – 8th Edition 5.26 Silberschatz, Galvin and Gagne ©2009
Multilevel Queue
● Ready queue is partitioned into separate queues, eg:
● foreground (interactive)
● background (batch)
● Process permanently in a given queue
● 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
Operating System Concepts – 8th Edition 5.27 Silberschatz, Galvin and Gagne ©2009
Multilevel Queue Scheduling
Operating System Concepts – 8th Edition 5.28 Silberschatz, Galvin and Gagne ©2009
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 – 8th Edition 5.29 Silberschatz, Galvin and Gagne ©2009
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
4 When it gains CPU, job receives 8 milliseconds
4 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
4 If it still does not complete, it is preempted and moved to queue Q2
Operating System Concepts – 8th Edition 5.30 Silberschatz, Galvin and Gagne ©2009
Multilevel Feedback Queues
Operating System Concepts – 8th Edition 5.31 Silberschatz, Galvin and Gagne ©2009
End of Chapter 3A
Operating System Concepts – 8th Edition Silberschatz, Galvin and Gagne ©2009
5.08
Operating System Concepts – 8th Edition 5.33 Silberschatz, Galvin and Gagne ©2009
In-5.7
Operating System Concepts – 8th Edition 5.34 Silberschatz, Galvin and Gagne ©2009
In-5.8
Operating System Concepts – 8th Edition 5.35 Silberschatz, Galvin and Gagne ©2009
In-5.9
Operating System Concepts – 8th Edition 5.36 Silberschatz, Galvin and Gagne ©2009
Dispatch Latency
Operating System Concepts – 8th Edition 5.37 Silberschatz, Galvin and Gagne ©2009
Java Thread Scheduling
● JVM Uses a Preemptive, Priority-Based Scheduling Algorithm
● FIFO Queue is Used if There Are Multiple Threads With the Same Priority
Operating System Concepts – 8th Edition 5.38 Silberschatz, Galvin and Gagne ©2009
Java Thread Scheduling (Cont.)
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
Operating System Concepts – 8th Edition 5.39 Silberschatz, Galvin and Gagne ©2009
Time-Slicing
Since the JVM Doesn’t Ensure Time-Slicing, the yield() Method
May Be Used:
while (true) {
// perform CPU-intensive task
...
Thread.yield();
}
This Yields Control to Another Thread of Equal Priority
Operating System Concepts – 8th Edition 5.40 Silberschatz, Galvin and Gagne ©2009
Thread Priorities
Priority Comment
Thread.MIN_PRIORITY Minimum Thread Priority
Thread.MAX_PRIORITY Maximum Thread Priority
Thread.NORM_PRIORITY Default Thread Priority
Priorities May Be Set Using setPriority() method:
setPriority(Thread.NORM_PRIORITY + 2);
Operating System Concepts – 8th Edition 5.41 Silberschatz, Galvin and Gagne ©2009
Solaris 2 Scheduling
Operating System Concepts – 8th Edition 5.42 Silberschatz, Galvin and Gagne ©2009