Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Can you help me to adjust this Round robin Java code so that each output is sort

ID: 3751906 • Letter: C

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;

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 BurstTime WaitingTime TurnAroundTime");

// for (int i = 0; i < n; i++) {

// System.out.println(

// "process" + (i + 1) + " " + array[i] + " " + waiting_time[i] + " " + 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));

}

}

Explanation / Answer

Add this small piece of code into your program

printf(" Enter arrival time ");
for(i=0;i<n;i++)
{
printf("arrival time : ");
scanf("%d",&at[i]);
wt[i]=0;
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(at[i]>at[j])
{
temp=at[i]; //sort according to arrival time
at[i]=at[j];
at[j]=temp;
temp=burst_time[i];
burst_time[i]=burst_time[j];
burst_time[j]=temp;
}
}
}