Ch5 Thursday
Ch5 Thursday
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Basic Concepts
Operating System Concepts – 10th Edition 5.2 Silberschatz, Galvin and Gagne ©2018
Histogram of CPU-burst Times
Operating System Concepts – 10th Edition 5.3 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 5.4 Silberschatz, Galvin and Gagne ©2018
Diagram of Process State
Operating System Concepts – 10th Edition 5.5 Silberschatz, Galvin and Gagne ©2018
Preemptive and Nonpreemptive Scheduling
Operating System Concepts – 10th Edition 5.6 Silberschatz, Galvin and Gagne ©2018
Preemptive Scheduling and Race Conditions
Operating System Concepts – 10th Edition 5.7 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 5.8 Silberschatz, Galvin and Gagne ©2018
Scheduling Criteria
Operating System Concepts – 10th Edition 5.9 Silberschatz, Galvin and Gagne ©2018
Scheduling Algorithm Optimization Criteria
Operating System Concepts – 10th Edition 5.10 Silberschatz, Galvin and Gagne ©2018
First- Come, First-Served (FCFS) Scheduling
P1 P2 P3
0 24 27 30
Operating System Concepts – 10th Edition 5.11 Silberschatz, Galvin and Gagne ©2018
FCFS Scheduling (Cont.)
P2 P3 P1
0 3 6 30
Operating System Concepts – 10th Edition 5.12 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
Operating System Concepts – 10th Edition 5.13 Silberschatz, Galvin and Gagne ©2018
Example of SJF
P4 P1 P3 P2
0 3 9 16 24
Operating System Concepts – 10th Edition 5.14 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 5.15 Silberschatz, Galvin and Gagne ©2018
Example of 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 5.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
1. t n = actual length of n th CPU burst
2. n +1 = predicted value for the next CPU burst
3. , 0 1
4. Define :
▪ Commonly, α set to ½
Operating System Concepts – 10th Edition 5.17 Silberschatz, Galvin and Gagne ©2018
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.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 5.19 Silberschatz, Galvin and Gagne ©2018
Example of RR with Time Quantum = 4
Operating System Concepts – 10th Edition 5.20 Silberschatz, Galvin and Gagne ©2018
Facts about RR
Operating System Concepts – 10th Edition 5.21 Silberschatz, Galvin and Gagne ©2018
Time Quantum and Context Switch Time
Operating System Concepts – 10th Edition 5.22 Silberschatz, Galvin and Gagne ©2018
Turnaround Time Varies With The Time Quantum
Operating System Concepts – 10th Edition 5.23 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 5.24 Silberschatz, Galvin and Gagne ©2018
Example of Priority Scheduling
Operating System Concepts – 10th Edition 5.25 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 5.26 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 5.27 Silberschatz, Galvin and Gagne ©2018
Multilevel Queue
Operating System Concepts – 10th Edition 5.28 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 5.29 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 5.30 Silberschatz, Galvin and Gagne ©2018
Schedulers
Operating System Concepts – 10th Edition 5.31 Silberschatz, Galvin and Gagne ©2018
Practice Assignment
Operating System Concepts – 10th Edition Silberschatz, Galvin and Gagne ©2018
Thread Libraries
• https://www.educative.io/edpresso/how-to-create-a-simple-thread-
in-c?
• https://www.geeksforgeeks.org/thread-functions-in-c-c/
• https://www.cs.cmu.edu/afs/cs/academic/class/15492-
f07/www/pthreads.html
• http://www.csc.villanova.edu/~mdamian/threads/posixthreads.html
Operating System Concepts – 10th Edition 5.33 Silberschatz, Galvin and Gagne ©2018
Pthreads
Operating System Concepts – 10th Edition 5.34 Silberschatz, Galvin and Gagne ©2018
Pthreads Example
Operating System Concepts – 10th Edition 5.35 Silberschatz, Galvin and Gagne ©2018
Pthreads Example (Cont.)
Operating System Concepts – 10th Edition 5.36 Silberschatz, Galvin and Gagne ©2018
Pthreads Code for Joining 10 Threads
Operating System Concepts – 10th Edition 5.37 Silberschatz, Galvin and Gagne ©2018
Windows Multithreaded C Program
Operating System Concepts – 10th Edition 5.38 Silberschatz, Galvin and Gagne ©2018
Windows Multithreaded C Program (Cont.)
Operating System Concepts – 10th Edition 5.39 Silberschatz, Galvin and Gagne ©2018
Java Threads
Operating System Concepts – 10th Edition 5.40 Silberschatz, Galvin and Gagne ©2018
Implicit Threading
Operating System Concepts – 10th Edition 5.41 Silberschatz, Galvin and Gagne ©2018