PROCESS SCHEDULING ALGORITHMS
Name : Vaibhav Yashwant Abhang
Dept : CSE – B(105)
2nd Year
CPU utilization – keep the CPU as busy as
possible
Throughput – # of processes that complete
their execution per time unit
Turnaround time – amount of time to execute
a particular process
Waiting time – amount of time a process has
been waiting in the ready queue
Response time – amount of time it takes from
when a request was submitted until the first
response is produced. (a process can produce
some output fairly early, and can continue
computing new results while previous results
are being output to the user.)
Max CPU utilization
Max throughput
Min turnaround time
Min waiting time
Min response time
Process Burst Time
P1 24
P2 3
P3 3
Suppose that the processes arrive in the order: P1 , P2
, P3
The Gantt Chart
P1 for the scheduleP2 is: P3
0 24 27 30
Waiting time for P1 = 0; P2 = 24; P3 = 27
Average waiting time: (0 + 24 + 27)/3 = 17
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
Waiting time for P1 = 6; P2 = 0; P3 = 3
Average waiting time: (6 + 0 + 3)/3 = 3
Much better than previous case.
The effect short process behind long process
Associate with each process the length of its next CPU
burst. Use these lengths to schedule the process with
the shortest time.
Two schemes:
nonpreemptive – once CPU given to the process it cannot
be preempted until completes its CPU burst.
preemptive – if a new process arrives with CPU burst
length less than remaining time of current executing
process, preempt. This scheme is know as the
Shortest-Remaining-Time-First (SRTF).
SJF is optimal – gives minimum average waiting time
for a given set of processes.
Process Burst Time
P1 7
P2 4
P3 1
P4 4
SJF (non-preemptive)
P1 P3 P2 P4
0 7 8 12 16
Average waiting time = (0 + 8 + 7 + 12)/4
=6.75
Process Arrival TimeBurst Time
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
SJF (preemptive)
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
Average waiting time = (9 + 1 + 0 +2)/4 = 3
A priority number (integer) is associated with each
process
The CPU is allocated to the process with the highest
priority (smallest integer highest priority). Equal-
priority processes are scheduled in FCFS order.
Preemptive
nonpreemptive
SJF is a priority scheduling where priority is the
predicted next CPU burst time. (The larger the CPU
burst, the lower
the priority, and vice versa.)
Problem Starvation – low priority processes may
never execute.
Solution Aging – as time progresses increase the
The Average Waiting Time is 8.2 Milliseconds
Each process gets a small unit of CPU time (time
quantum), 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.
Performance
q large FIFO
q small q must be large with respect to context switch,
otherwise overhead is too high.
Process Burst Time
P1 53
P2 17
P3 68
P4 24
The Gantt chart is:
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
Typically, higher average turnaround than SJF,
but better response.