Highest Response Ratio Next (HRRN) Scheduling
Highest Response Ratio Next (HRNN) is one of the most optimal scheduling algorithms. This is a non-preemptive algorithm in which, the scheduling is done on the basis of an extra parameter called Response Ratio. A Response Ratio is calculated for each of the available jobs and the Job with the highest response ratio is given priority over the others.
Response Ratio is calculated by the given formula.
Response Ratio = (W+S)/S
Where,
W → Waiting Time
S → Service Time or Burst Time
If we look at the formula, we will notice that the job with the shorter burst time will be given priority but it is also including an extra factor called waiting time. Since,
HRNN α W
HRNN α (1/S)
Hence,
· This algorithm not only favors shorter job but it also concern the waiting time of the longer jobs.
· Its mode is non preemptive hence context switching is minimal in this algorithm.
HRNN Example
In the following example, there are 5 processes given. Their arrival time and Burst Time are given in the table.
Process ID | Arrival Time | Burst Time |
0 | 0 | 3 |
1 | 2 | 5 |
2 | 4 | 4 |
3 | 6 | 1 |
4 | 8 | 2 |
At time 0, The Process P0 arrives with the CPU burst time of 3 units. Since it is the only process arrived till now hence this will get scheduled immediately.
P0 is executed for 3 units, meanwhile, only one process P1 arrives at time 3. This will get scheduled immediately since the OS doesn't have a choice.
P1 is executed for 5 units. Meanwhile, all the processes get available. We have to calculate the Response Ratio for all the remaining jobs.
RR (P2) = ((8-4) +4)/4 = 2
RR (P3) = (2+1)/1 = 3
RR (P4) = (0+2)/2 = 1
Since, the Response ratio of P3 is higher hence P3 will be scheduled first.
P3 is scheduled for 1 unit. The next available processes are P2 and P4. Let's calculate their Response ratio.
RR ( P2) = (5+4)/4 = 2.25
RR (P4) = (1+2)/2 = 1.5
The response ratio of P2 is higher hence P2 will be scheduled.
Now, the only available process is P4 with the burst time of 2 units, since there is no other process available hence this will be scheduled.
Process ID | Arrival Time | Burst Time | Completion Time | Turn Around Time | Waiting Time |
0 | 0 | 3 | 3 | 3 | 0 |
1 | 2 | 5 | 8 | 6 | 1 |
2 | 4 | 4 | 13 | 9 | 5 |
3 | 6 | 1 | 9 | 3 | 2 |
4 | 8 | 2 | 15 | 7 | 5 |
Average Waiting Time = 13/5