Ch5 - Cpu Scheduling Updated With Notes
Ch5 - Cpu Scheduling Updated With Notes
Operating System Concepts – 10th Edition 5.2 Silberschatz, Galvin and Gagne
Objectives
Operating System Concepts – 10th Edition 5.3 Silberschatz, Galvin and Gagne
Basic Concepts
Operating System Concepts – 10th Edition 5.4 Silberschatz, Galvin and Gagne
Histogram of CPU-burst Times
Operating System Concepts – 10th Edition 5.5 Silberschatz, Galvin and Gagne
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 5.6 Silberschatz, Galvin and Gagne
Preemptive and Nonpreemptive Scheduling
Otherwise, it is preemptive.
Operating System Concepts – 10th Edition 5.7 Silberschatz, Galvin and Gagne
Preemptive Scheduling and Race Conditions
Operating System Concepts – 10th Edition 5.8 Silberschatz, Galvin and Gagne
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 – the time it takes
for the dispatcher to stop one
process and start another running
Operating System Concepts – 10th Edition 5.9 Silberschatz, Galvin and Gagne
Scheduling Criteria
Operating System Concepts – 10th Edition 5.10 Silberschatz, Galvin and Gagne
Scheduling Algorithm Optimization Criteria
Operating System Concepts – 10th Edition 5.11 Silberschatz, Galvin and Gagne
First- Come, First-Served (FCFS) Scheduling
Operating System Concepts – 10th Edition 5.12 Silberschatz, Galvin and Gagne
FCFS Scheduling (Cont.)
P2 P3 P1
0 3 6 30
Operating System Concepts – 10th Edition 5.13 Silberschatz, Galvin and Gagne
Shortest-Job-First (SJF) Scheduling
Operating System Concepts – 10th Edition 5.14 Silberschatz, Galvin and Gagne
Shortest-Job-First (SJF) Scheduling
Operating System Concepts – 10th Edition 5.15 Silberschatz, Galvin and Gagne
Example of SJF
P4 P1 P3 P2
0 3 9 16 24
Operating System Concepts – 10th Edition 5.16 Silberschatz, Galvin and Gagne
Determining Length of Next CPU Burst
Commonly, α set to ½
Operating System Concepts – 10th Edition 5.17 Silberschatz, Galvin and Gagne
Prediction of the Length of the Next CPU Burst
Operating System Concepts – 10th Edition 5.18 Silberschatz, Galvin and Gagne
Examples of Exponential Averaging
=0
• n+1 = n
• Recent history does not count
=1
• n+1 = tn
• Only the actual last CPU burst counts
If we expand the formula, we get:
n+1 = tn+(1 - ) tn -1 + …
+(1 - )j tn -j + …
+(1 - )n +1 0
Operating System Concepts – 10th Edition 5.19 Silberschatz, Galvin and Gagne
Example of Shortest-remaining-time-first
Operating System Concepts – 10th Edition 5.20 Silberschatz, Galvin and Gagne
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.
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.21 Silberschatz, Galvin and Gagne
Example of RR with Time Quantum = 4
Operating System Concepts – 10th Edition 5.22 Silberschatz, Galvin and Gagne
Time Quantum and Context Switch Time
Operating System Concepts – 10th Edition 5.23 Silberschatz, Galvin and Gagne
Turnaround Time Varies With The Time Quantum
Operating System Concepts – 10th Edition 5.24 Silberschatz, Galvin and Gagne
Priority Scheduling
Operating System Concepts – 10th Edition 5.25 Silberschatz, Galvin and Gagne
Example of Priority Scheduling
Operating System Concepts – 10th Edition 5.26 Silberschatz, Galvin and Gagne
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 5.27 Silberschatz, Galvin and Gagne
Multilevel Queue
With priority scheduling, have separate queues for each
priority.
Schedule the process in the highest-priority queue!
Operating System Concepts – 10th Edition 5.28 Silberschatz, Galvin and Gagne
Multilevel Queue
Operating System Concepts – 10th Edition 5.29 Silberschatz, Galvin and Gagne
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 a multilevel
feedback queue
Operating System Concepts – 10th Edition 5.30 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 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 5.31 Silberschatz, Galvin and Gagne
Thread Scheduling
Distinction between user-level and kernel-level threads
Operating System Concepts – 10th Edition 5.32 Silberschatz, Galvin and Gagne
Pthread Scheduling
API allows specifying either PCS or SCS during thread
creation
• PTHREAD_SCOPE_PROCESS schedules threads using
PCS scheduling
• PTHREAD_SCOPE_SYSTEM schedules threads using
SCS scheduling
Can be limited by OS – Linux and macOS only allow
PTHREAD_SCOPE_SYSTEM
Operating System Concepts – 10th Edition 5.33 Silberschatz, Galvin and Gagne
Pthread Scheduling API
#include <pthread.h>
#include <stdio.h>
#define NUM_THREADS 5
int main(int argc, char *argv[]) {
int i, scope;
pthread_t tid[NUM THREADS];
pthread_attr_t attr;
/* get the default attributes */
pthread_attr_init(&attr);
/* first inquire on the current scope */
if (pthread_attr_getscope(&attr, &scope) != 0)
fprintf(stderr, "Unable to get scheduling scope\n");
else {
if (scope == PTHREAD_SCOPE_PROCESS)
printf("PTHREAD_SCOPE_PROCESS");
else if (scope == PTHREAD_SCOPE_SYSTEM)
printf("PTHREAD_SCOPE_SYSTEM");
else
fprintf(stderr, "Illegal scope value.\n");
}
Operating System Concepts – 10th Edition 5.34 Silberschatz, Galvin and Gagne
Pthread Scheduling API
Operating System Concepts – 10th Edition 5.35 Silberschatz, Galvin and Gagne
Multiple-Processor Scheduling
CPU scheduling is more complex when multiple CPUs are
available
Operating System Concepts – 10th Edition 5.36 Silberschatz, Galvin and Gagne
Multiple-Processor Scheduling
Operating System Concepts – 10th Edition 5.37 Silberschatz, Galvin and Gagne
Multicore Processors
Recent trend to place multiple processor cores on the
same physical chip
Figure
Operating System Concepts – 10th Edition 5.38 Silberschatz, Galvin and Gagne
Multithreaded Multicore System
Each core has > 1 hardware threads.
Figure
Operating System Concepts – 10th Edition 5.39 Silberschatz, Galvin and Gagne
Multithreaded Multicore System
Chip-multithreading (CMT)
assigns each core multiple
hardware threads. (Intel
refers to this as
hyperthreading.)
Operating System Concepts – 10th Edition 5.40 Silberschatz, Galvin and Gagne
Multithreaded Multicore System
Two levels of
scheduling:
1. The operating
system decides
which software
thread to run on a
logical CPU
Operating System Concepts – 10th Edition 5.41 Silberschatz, Galvin and Gagne
Multiple-Processor Scheduling – Load Balancing
Operating System Concepts – 10th Edition 5.42 Silberschatz, Galvin and Gagne
Multiple-Processor Scheduling – Processor Affinity
Operating System Concepts – 10th Edition 5.43 Silberschatz, Galvin and Gagne
NUMA and CPU Scheduling
If the operating system is NUMA-aware, it will assign
memory closes to the CPU the thread is running on.
Operating System Concepts – 10th Edition 5.44 Silberschatz, Galvin and Gagne
Real-Time CPU Scheduling
Can present obvious challenges
Soft real-time systems – Critical real-time tasks have the
highest priority, but no guarantee as to when tasks will
be scheduled
Hard real-time systems – task must be serviced by its deadline
Operating System Concepts – 10th Edition 5.45 Silberschatz, Galvin and Gagne
Real-Time CPU Scheduling
Event latency – the
amount of time that
elapses from when an
event occurs to when it is
serviced.
Two types of latencies
affect performance
1. Interrupt latency – the
time from the arrival of
interrupt to the start of
a routine that services
interrupt
2. Dispatch latency –
time for schedule to
take current process
off CPU and switch to
another
Operating System Concepts – 10th Edition 5.46 Silberschatz, Galvin and Gagne
Interrupt Latency
Operating System Concepts – 10th Edition 5.47 Silberschatz, Galvin and Gagne
Dispatch Latency
Conflict phase of
dispatch latency:
1. Preemption of any
process running in
kernel mode
2. Release by the low-
priority process of
resources needed by
high-priority
processes
Operating System Concepts – 10th Edition 5.48 Silberschatz, Galvin and Gagne
End of Chapter 5