ch5 OS
ch5 OS
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Outline
▪ Basic Concepts
▪ Scheduling Criteria
▪ Scheduling Algorithms
Operating System Concepts – 10th Edition 5a.2 Silberschatz, Galvin and Gagne ©2018
Objectives
Operating System Concepts – 10th Edition 5a.3 Silberschatz, Galvin and Gagne ©2018
Basic Concepts
Operating System Concepts – 10th Edition 5a.4 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.5 Silberschatz, Galvin and Gagne ©2018
Histogram of CPU-burst Times
Operating System Concepts – 10th Edition 5a.6 Silberschatz, Galvin and Gagne ©2018
Preemptive and Nonpreemptive Scheduling
Operating System Concepts – 10th Edition 5a.7 Silberschatz, Galvin and Gagne ©2018
Preemptive Scheduling and Race Conditions
Operating System Concepts – 10th Edition 5a.8 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.9 Silberschatz, Galvin and Gagne ©2018
Scheduling Criteria
Operating System Concepts – 10th Edition 5a.10 Silberschatz, Galvin and Gagne ©2018
Scheduling Algorithm Optimization Criteria
Operating System Concepts – 10th Edition 5a.11 Silberschatz, Galvin and Gagne ©2018
First- Come, First-Served (FCFS) Scheduling
Operating System Concepts – 10th Edition 5a.12 Silberschatz, Galvin and Gagne ©2018
FCFS Scheduling (Cont.)
Operating System Concepts – 10th Edition 5a.13 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.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
▪ 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.15 Silberschatz, Galvin and Gagne ©2018
Example of SJF
Operating System Concepts – 10th Edition 5a.16 Silberschatz, Galvin and Gagne ©2018
Determining Length of 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
▪ Commonly, α set to ½
Operating System Concepts – 10th Edition 5a.17 Silberschatz, Galvin and Gagne ©2018
Prediction of the Length of the Next CPU Burst
Operating System Concepts – 10th Edition 5a.18 Silberschatz, Galvin and Gagne ©2018
Priority Scheduling
▪ The CPU is allocated to the process with the highest priority (smallest
integer ≡ highest priority)
• Preemptive
• Nonpreemptive
Operating System Concepts – 10th Edition 5a.19 Silberschatz, Galvin and Gagne ©2018
Example of Priority Scheduling
Operating System Concepts – 10th Edition 5a.20 Silberschatz, Galvin and Gagne ©2018
Example of Shortest-remaining-time-first
Operating System Concepts – 10th Edition 5a.21 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.22 Silberschatz, Galvin and Gagne ©2018
Example of RR with Time Quantum = 4
Operating System Concepts – 10th Edition 5a.23 Silberschatz, Galvin and Gagne ©2018
Time Quantum and Context Switch Time
Operating System Concepts – 10th Edition 5a.24 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.25 Silberschatz, Galvin and Gagne ©2018
End of Chapter 5a
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018