Question: Can you help me to adjust this Round robin Java code so that each output is sorted as arrival time ? import java.awt.image.BufferStrategy; import java.util.Random;
Can you help me to adjust this Round robin Java code so that each output is sorted as arrival time ?
import java.awt.image.BufferStrategy;
import java.util.Random;
import java.util.Scanner;
import java.util.Scanner.*;
public class RoundRobin {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int quantum, sum = 0;
float average_waitingtime = 0;
float average_turnaroundtime = 0;
float average_responsetime = 0;
System.out.println(" ------------------------------------------");
System.out.println(" ** Round robin CPU Scheduling Algorithm **");
System.out.println(" ------------------------------------------");
System.out.println("Enter number of process:");
int n = sc.nextInt();
int burst_time[] = new int[n];
int waiting_time[] = new int[n];
int turnaround_time[] = new int[n];
int array[] = new int[n];
int lastcompletion = 0;
Random rand = new Random();
for(int i = 0; i< n ; i++) {
burst_time[i] = rand.nextInt(25);
}
System.out.println(" Please Enter Time quantum:");
quantum = sc.nextInt();
for (int i = 0; i < n; i++)
array[i] = burst_time[i];
for (int i = 0; i < n; i++)
waiting_time[i] = 0;
do {
for (int i = 0; i < n; i++) {
if (burst_time[i] > quantum) {
burst_time[i] -= quantum;
for (int j = 0; j < n; j++) {
if ((j != i) && (burst_time[j] != 0))
waiting_time[j] += quantum;
}
} else {
for (int j = 0; j < n; j++) {
if ((j != i) && (burst_time[j] != 0))
waiting_time[j] += burst_time[i];
}
burst_time[i] = 0;
}
}
sum = 0;
for (int k = 0; k < n; k++)
sum = sum + burst_time[k];
} while (sum != 0);
for (int i = 0; i < n; i++)
turnaround_time[i] = waiting_time[i] + array[i];
System.out.println(" process\t\tBurstTime\tWaitingTime\tTurnAroundTime");
// for (int i = 0; i < n; i++) {
// System.out.println(
// "process" + (i + 1) + "\t" + array[i] + "\t\t" + waiting_time[i] + "\t\t" + turnaround_time[i]);
// }
for (int j = 0; j < n; j++) {
average_waitingtime += waiting_time[j];
}
for (int j = 0; j < n; j++) {
average_turnaroundtime += turnaround_time[j];
}
for(int j = 1; j < n;j++) {
average_responsetime += average_responsetime + quantum;
}
lastcompletion = waiting_time[n-1] + turnaround_time[n-1];
System.out.println(" The average waiting time is:" + (average_waitingtime / n));
System.out.println(" The Average turn around time is: " + (average_turnaroundtime / n));
System.out.println(" The average response time is: " + (average_responsetime / n));
System.out.println(" The throughput of the program is :" +(lastcompletion / n));
}
}
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
