ch5a
ch5a
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Chapter 5a: CPU Scheduling
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Outline
Basic Concepts
Scheduling Criteria
Scheduling Algorithms
Operating System Concepts – 10th Edition 5a.3 Silberschatz, Galvin and Gagne ©2018
Objectives
Describe various CPU scheduling algorithms
Assess CPU scheduling algorithms based on scheduling criteria
Explain the issues related to multiprocessor and multicore scheduling
Describe various real-time scheduling algorithms
Describe the scheduling algorithms used in the Windows, Linux, and
Solaris operating systems
Apply modeling and simulations to evaluate CPU scheduling
algorithms
Operating System Concepts – 10th Edition 5a.4 Silberschatz, Galvin and Gagne ©2018
Basic Concepts
Operating System Concepts – 10th Edition 5a.5 Silberschatz, Galvin and Gagne ©2018
Histogram of CPU-burst Times
Operating System Concepts – 10th Edition 5a.6 Silberschatz, Galvin and Gagne ©2018
CPU Scheduler
The CPU scheduler selects from among the processes in ready
queue, and allocates a CPU core 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
2. Switches from running to ready state
3. Switches from waiting to ready
4. Terminates
For situations 1 and 4, there is no choice in terms of scheduling. A
new process (if one exists in the ready queue) must be selected
for execution.
For situations 2 and 3, however, there is a choice.
Operating System Concepts – 10th Edition 5a.7 Silberschatz, Galvin and Gagne ©2018
Preemptive and Nonpreemptive Scheduling
Operating System Concepts – 10th Edition 5a.8 Silberschatz, Galvin and Gagne ©2018
Preemptive Scheduling and Race Conditions
Operating System Concepts – 10th Edition 5a.9 Silberschatz, Galvin and Gagne ©2018
Dispatcher
Dispatcher module gives control of the
CPU to the process selected by the CPU
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 – 10th Edition 5a.10 Silberschatz, Galvin and Gagne ©2018
Scheduling Criteria
Operating System Concepts – 10th Edition 5a.11 Silberschatz, Galvin and Gagne ©2018
Scheduling Algorithm Optimization Criteria
Operating System Concepts – 10th Edition 5a.12 Silberschatz, Galvin and Gagne ©2018
First- Come, First-Served (FCFS) Scheduling
P1 P2 P3
0 24 27 30
Operating System Concepts – 10th Edition 5a.13 Silberschatz, Galvin and Gagne ©2018
FCFS Scheduling (Cont.)
P2 P3 P1
0 3 6 30
Operating System Concepts – 10th Edition 5a.14 Silberschatz, Galvin and Gagne ©2018
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 – 10th Edition 5a.15 Silberschatz, Galvin and Gagne ©2018
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
Preemptive version called shortest-remaining-time-first
How do we determine the length of the next CPU burst?
• Could ask the user
• Estimate
Operating System Concepts – 10th Edition 5a.16 Silberschatz, Galvin and Gagne ©2018
Example of SJF
P4 P1 P3 P2
0 3 9 16 24
Operating System Concepts – 10th Edition 5a.17 Silberschatz, Galvin and Gagne ©2018
Example of Shortest-remaining-time-first
P1 P2 P4 P1 P3
0 1 5 10 17 26
Operating System Concepts – 10th Edition 5a.18 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 5a.19 Silberschatz, Galvin and Gagne ©2018
Example of RR with Time Quantum = 4
Operating System Concepts – 10th Edition 5a.20 Silberschatz, Galvin and Gagne ©2018
Time Quantum and Context Switch Time
Operating System Concepts – 10th Edition 5a.21 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
• Nonpreemptive
SJF is priority scheduling where priority is the inverse of predicted next
CPU burst time
Operating System Concepts – 10th Edition 5a.22 Silberschatz, Galvin and Gagne ©2018
Example of Priority Scheduling
Operating System Concepts – 10th Edition 5a.23 Silberschatz, Galvin and Gagne ©2018
Priority Scheduling w/ Round-Robin
ProcessA arri Burst TimeT Priority
P1 4 3
P2 5 2
P3 8 2
P4 7 1
P5 3 3
Run the process with the highest priority. Processes with the same
priority run round-robin
Operating System Concepts – 10th Edition 5a.24 Silberschatz, Galvin and Gagne ©2018
Multilevel Queue
With priority scheduling, have separate queues for each priority.
Schedule the process in the highest-priority queue!
Operating System Concepts – 10th Edition 5a.25 Silberschatz, Galvin and Gagne ©2018
Multilevel Queue
Prioritization based upon process type
Operating System Concepts – 10th Edition 5a.26 Silberschatz, Galvin and Gagne ©2018
Multilevel Feedback Queue
A process can move between the various queues.
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
Aging can be implemented using multilevel feedback queue
Operating System Concepts – 10th Edition 5a.27 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 process enters queue Q0 which is
served in RR
When it gains CPU, the process receives 8
milliseconds
If it does not finish in 8 milliseconds, the
process is moved to queue Q1
• At Q1 job is again served in RR and
receives 16 additional milliseconds
If it still does not complete, it is preempted
and moved to queue Q2
Operating System Concepts – 10th Edition 5a.28 Silberschatz, Galvin and Gagne ©2018
End of Chapter 5a
Operating System Concepts – 10th Edition 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 process enters queue Q0 which is served RR
When it gains CPU, the process receives 8 milliseconds
If it does not finish in 8 milliseconds, it is moved to queue Q1
• At Q1 the process is again served RR and receives 16
additional milliseconds
If it still does not complete, it is preempted and moved to queue Q2
Operating System Concepts – 10th Edition 5a.30 Silberschatz, Galvin and Gagne ©2018