6.OS Lecturer Updated
6.OS Lecturer Updated
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
Preemptive and Nonpreemptive Scheduling
Operating System Concepts – 10th Edition 5.5 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.6 Silberschatz, Galvin and Gagne ©2018
Scheduling Criteria
Arrival Time --- The time at which the process enters into
the ready queue is called the arrival time.
Operating System Concepts – 10th Edition 5.7 Silberschatz, Galvin and Gagne ©2018
Scheduling Criteria
Turnaround time – The total amount of time spent by the process from its
arrival to its completion, is called Turnaround time.
TAT = Completion Time – Arrival Time
Waiting time – amount of time a process has been waiting in the ready
queue OR
The Total amount of time for which the process waits for the CPU to be
assigned is called waiting time.
WT = Turnaround Time – Brust Time
Response time – amount of time it takes from when a request was
submitted until the first response is produced. not output (for time-sharing
environment)
OR The difference between the arrival time and the time at which the
process first gets the CPU is called Response Time.
R.T = (The time at which a Process gets CPU the first time) - Arrival Time
Operating System Concepts – 10th Edition 5.8 Silberschatz, Galvin and Gagne ©2018
Continue…
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
Operating System Concepts – 10th Edition 5.11 Silberschatz, Galvin and Gagne ©2018
First- Come, First-Served (FCFS) Scheduling
P1 P2 P3 P4
0 2 4 5 8 12
Average waiting time: ?
Average Turnaround time: ?
Operating System Concepts – 10th Edition 5.12 Silberschatz, Galvin and Gagne ©2018
First- Come, First-Served (FCFS) Scheduling
P1 P2 idle
P3 P4
0 2 4 5 8 12
Average waiting time: (0 + 1 + 0+2)/4 = 0.75
Turnaround time: (2+ 3 + 3+6)/4 = 3.5
Operating System Concepts – 10th Edition 5.13 Silberschatz, Galvin and Gagne ©2018
First- Come, First-Served (FCFS) Scheduling
Sr.# Processes
id
Processes
Name
A.T B.T C.T TAT W.T
1 P1 A 0 9
2 P2 B 1 3
3 P3 C 1 2
4 P4 D 1 4
5 P5 E 2 3
6 P6 F 3 2
Suppose that the processes arrive in the order: P1 , P2 , P3 , P4, P5, P6
Operating System Concepts – 10th Edition 5.14 Silberschatz, Galvin and Gagne ©2018
First- Come, First-Served (FCFS) Scheduling
P1 P2 P3
0 24 27 30
Operating System Concepts – 10th Edition 5.15 Silberschatz, Galvin and Gagne ©2018
FCFS Scheduling (Cont.)
P2 P3 P1
0 3 6 30
Operating System Concepts – 10th Edition 5.16 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
The difficulty is knowing the length of the next CPU request
How do we determine the length of the next CPU burst?
• Could ask the user
• Estimate
Operating System Concepts – 10th Edition 5.17 Silberschatz, Galvin and Gagne ©2018
Example of SJF
P4 P1 P3 P2
0 3 9 16 24
Operating System Concepts – 10th Edition 5.18 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 5.19 Silberschatz, Galvin and Gagne ©2018
Prediction of the Length of the Next CPU Burst
Operating System Concepts – 10th Edition 5.20 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.21 Silberschatz, Galvin and Gagne ©2018
Shortest Remaining Time First Scheduling
Operating System Concepts – 10th Edition 5.22 Silberschatz, Galvin and Gagne ©2018
Example of Shortest-remaining-time-first/ Shortest-remaining-job-
first
P1 P2 P4 P1 P3
0 1 5 10 17 26
Operating System Concepts – 10th Edition 5.23 Silberschatz, Galvin and Gagne ©2018
Example of Shortest-remaining-time-first/ Shortest remaining-
job-first
Operating System Concepts – 10th Edition 5.24 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 (FCFS)
• q small RR
Note that q must be large with respect to context switch, otherwise
overhead is too high
Operating System Concepts – 10th Edition 5.25 Silberschatz, Galvin and Gagne ©2018
Example of RR with Time Quantum = 4
Operating System Concepts – 10th Edition 5.26 Silberschatz, Galvin and Gagne ©2018
Time Quantum and Context Switch Time
Operating System Concepts – 10th Edition 5.27 Silberschatz, Galvin and Gagne ©2018
Turnaround Time Varies With The Time Quantum
Operating System Concepts – 10th Edition 5.28 Silberschatz, Galvin and Gagne ©2018
Priority Scheduling
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 5.29 Silberschatz, Galvin and Gagne ©2018
Example of Priority Scheduling
Operating System Concepts – 10th Edition 5.30 Silberschatz, Galvin and Gagne ©2018