CPU Scheduling
CPU Scheduling
Operating System Concepts – 9th Edition 6.2 Silberschatz, Galvin and Gagne
Histogram of CPU-burst Times
Operating System Concepts – 9th Edition 6.3 Silberschatz, Galvin and Gagne
CPU Scheduler
Short-term 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
2. Switches from running to ready state
3. Switches from waiting to ready
4. 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
Operating System Concepts – 9th Edition 6.4 Silberschatz, Galvin and Gagne
Dispatcher
Operating System Concepts – 9th Edition 6.5 Silberschatz, Galvin and Gagne
Scheduling Criteria
Operating System Concepts – 9th Edition 6.6 Silberschatz, Galvin and Gagne
Scheduling Algorithm Optimization Criteria
Operating System Concepts – 9th Edition 6.7 Silberschatz, Galvin and Gagne
First- Come, First-Served (FCFS) Scheduling
P1 P2 P3
0 24 27 30
Operating System Concepts – 9th Edition 6.8 Silberschatz, Galvin and Gagne
Operating System Concepts – 9th Edition 6.9 Silberschatz, Galvin and Gagne
Operating System Concepts – 9th Edition 6.10 Silberschatz, Galvin and Gagne
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
Operating System Concepts – 9th Edition 6.11 Silberschatz, Galvin and Gagne
Shortest-Job-First (SJF) Scheduling
Operating System Concepts – 9th Edition 6.12 Silberschatz, Galvin and Gagne
Example of SJF
P4 P1 P3 P2
0 3 9 16 24
Operating System Concepts – 9th Edition 6.13 Silberschatz, Galvin and Gagne
Determining Length of Next CPU Burst
Commonly, α set to ½
Preemptive version called shortest-remaining-time-
first
Operating System Concepts – 9th Edition 6.14 Silberschatz, Galvin and Gagne
Prediction of the Length of the Next CPU Burst
Operating System Concepts – 9th Edition 6.15 Silberschatz, Galvin and Gagne
Example of Shortest-remaining-time-first
P1 P2 P4 P1 P3
0 1 5 10 17 26
Operating System Concepts – 9th Edition 6.16 Silberschatz, Galvin and Gagne
Priority Scheduling
Operating System Concepts – 9th Edition 6.17 Silberschatz, Galvin and Gagne
Example of Priority Scheduling
Operating System Concepts – 9th Edition 6.18 Silberschatz, Galvin and Gagne
Round Robin (RR)
Operating System Concepts – 9th Edition 6.19 Silberschatz, Galvin and Gagne
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
Operating System Concepts – 9th Edition 6.20 Silberschatz, Galvin and Gagne
Time Quantum and Context Switch Time
Operating System Concepts – 9th Edition 6.21 Silberschatz, Galvin and Gagne
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 – 9th Edition 6.22 Silberschatz, Galvin and Gagne
Multilevel Queue Scheduling
Operating System Concepts – 9th Edition 6.23 Silberschatz, Galvin and Gagne
Multilevel Feedback Queue
Operating System Concepts – 9th Edition 6.24 Silberschatz, Galvin and Gagne
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 – 9th Edition 6.25 Silberschatz, Galvin and Gagne
End of Chapter 6