I have a homework assignment that l started, but l ran into problems. Could you please look at my code and help me. The topic is as follow:
In this exercise, you will study the effect of several parameters used with RR scheduling. To solve the exercise, you will need to implement a discrete simulation to experiment with the performance of this strategy under different time slice lengths and different dispatcher overhead times. Do this by writing a simulation program to imitate the behavior of a single-CPU system that has a preemptive RR scheduler, and then collecting performance data regarding the operation of the simulation.
public class Simulation
{
public static void main(String [] args) throws IOException
{
BufferedReader console = new BufferedReader(new
InputStreamReader(System.in));
System.out.print("\n The time quantum (for Round
Robin algorithm)\n");
System.out.print("Time Quantum: ");
String input = console.readLine();
int quantum = Integer.parseInt(input);
int [] timequantum = new int[quantum];
for (int i=0;i<quantum;i++)
{
try
{
timequantum[i] = Integer.parseInt(in.readLine());
}
catch(NumberFormatException e)
{
System.out.println("You must enter a number!");
return;
}
}
}
static float getWaitRR(int [] p,int [] b, int [] b2,int q, int n)
{
float totalTurnAround = 0; //will hold the total TurnAround time
int[] turnAround=new int [n];
int avg=0,
totalBursts = 0;
for(int k=0;k<(b[n-1]);k++)
{
for(int i=0;i<n;i++)
{
if(b2[i]<q) //if the burst time for a process is less than the quantum
{
if(b2[i]!=0) //and if it is not equal to zero
{
for(int j=b2[i];j>0;j--)
{
avg++; //counts up all burst times
turnAround[i] = avg; //stores it in the correct array index
}
b2[i]=0; //makes sure there are no minus values
}
}
Else
{
for(int j=q;j>0;j--)
{
avg++; //counts up all burst times
if(b2[i]!=0) //if process bursts are != 0 then they haven't finished
turnAround[i] = avg; //over-right old time
}
b2[i]=b2[i]-q; //takes time quantum away from burst times, if it goes
below 0 it gets reset to 0
}
}
}
for(int i=0;i<n;i++)
totalTurnAround += turnAround[i]; //this gets the total turnaround time
totalTurnAround -= avg; //avg is the total burst time
return(totalTurnAround/n); //returns the average wait time
}
}
Thanks for replying.
My problem is that, have read the time quantum and the latency in while at the same time read in the start time and the burst times from a text file and then get the four of these figures to give me the average time waiting and the turnaround time. I m just totally lost on how to do this like i know how to calculate the times but after that im lost .
No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.