5 OS CPUscheduling
5 OS CPUscheduling
5 OS CPUscheduling
Chapter 6
Basic Concepts
Scope Scheduling Criteria
Scheduling Algorithms
To introduce CPU scheduling, which is the basis for
multiprogrammed operating systems
Objectives To describe various CPU-scheduling algorithms
To discuss evaluation criteria for selecting a CPU-scheduling
algorithm for a particular system
Basic Concepts
Maximum CPU utilization obtained with
multiprogramming
CPU–I/O Burst Cycle – Process execution
consists of a cycle of CPU execution and I/O
wait
CPU burst followed by I/O burst
CPU burst distribution is of main concern
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 Scheduler
3. Switches from waiting to ready
4. Terminates
P2 P3 P1
FCFS
0 3 6 30
Waiting time:
Scheduling P1 = 6;
P2 = 0;
(Cont.) P3 = 3
Average waiting time: (6 + 0 + 3)/3 = 3
Much better than previous case
Convoy effect - short process behind long process
Consider one CPU-bound and many I/O-bound
processes
Associate with each process the length of its next
CPU burst
Use these lengths to schedule the process with the
Shortest-Job- shortest time
First (SJF) SJF is optimal – gives minimum average waiting time
for a given set of processes
Scheduling The difficulty is knowing the length of the next CPU
request
Could ask the user
Process Arrival Time Burst Time
P1 0.0 6
P2 0.0 8
P3 0.0 7
P4 0.0 3
Example of SJF scheduling chart
SJF Average waiting time = (3 + 16 + 9 + 0) / 4 = 7
What is the average waiting time using FCFS scheduling ?
P4 P1 P3 P2
0 3 9 16 24
Process Arrival Time Burst Time
P1 0.0 6
P2 2.0 8
P3 4.0 7
P4 5.0 3
Example of
SJF SJF scheduling
Execution order:
Average waiting time:
=1
n+1 = tn
Examples of Only the actual last CPU burst counts
Example of P2 1 4
P3 2 9
Shortest- P4 3 5
remaining-
time-first Preemptive SJF Gantt Chart
P1 P2 P4 P1 P3
0 1 5 10 17 26
Solution
Aging – as time progresses increase the priority of the
process
Process Burst Time Priority
P1 10 3
P2 1 1
P3 2 4
P4 1 5
Example of P5 5 2
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
Round Robin most q time units at once.
(RR) 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
Process Burst Time
P1 24
P2 3
P3 3
The Gantt chart
Example of
RR with Time P1 P2 P3 P1 P1 P1 P1 P1
Quantum = 4 0 4 7 10 14 18 22 26 30
Time Varies
With The
Time
Quantum
Scheduling Preemptive/ nonpreemptive
FCFS nonpreemptive
Scheduling
RR preemptive
Ready queue is partitioned into separate queues, e.g.:
foreground (interactive)
background (batch)
Process permanently in a given queue
Each queue has its own scheduling algorithm:
foreground – RR
Multilevel background – FCFS
Example of Scheduling
Multilevel A new job enters queue Q0 which is served
FCFS
Feedback When it gains CPU, job receives 8
milliseconds
Queue 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
End of Questions?!
Chapter 6