can anyone help with this
i have to do a project and im running into alot of problems

i have to write a discrete simulation to experiment with
the performance of this strategy under different timeslice lengths and different dispatcher
overhead times [dispatch latencies]. Do this
by writing a simulation program to imitate the behaviour of a single-CPU system that has a
preemptive RR scheduler,
and then collecting performance data regarding the operation of the simulation.
Create an input file [see Secondary Part] to represent process arrival and service times, where
each line represents a process arriving into your simulated system.Before anyone gets angry im not asking for anyone to do it for me ive been trying for 2 days just a bit lost.

heres my code so far i need to enter the data for the timeslice/quantum and the latency then read in the arrival times and the burst times from a text file not sure how to do this though

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.lang.Math;

public class OSAssign
{

	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;
					}
				}
				
				//System.out.print("\n Dispatcher overhead times:\n");
				//System.out.print("Dispatcher time");
				//String input


				
				//System.out.print("\n Arrival Time:");
				//String input = console.readLine();
				//int num = Integer.parseInt(input);
				//int [] arrival = new int[num];
				//for (int i=0;i<num;i++)
				//{
				//	arrival[i]=console.readInt();
				//}
///////////////////////////////////////////////////////////////////////////////////////////////
				//System.out.print("\n Round Robin\n");
				//float avgWait = getWaitRR(arrival, bursts, bursts2, quantum, num);
				//System.out.println("\nAverage process waiting time:"+ avgWait);
				//System.out.println();
				
	}
	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
	}
}

Is it possible for you to be a bit more specific about the problems? Might be easier to take it one step at a time :)

thanks for replying.

i think my problem is the fact i 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 textfile and then get the four of these figures to give me the average time waiting and the turnaround time im just totally lost on how to do this like i know how to calculate the times but after that im lost

This article has been dead for over six months. Start a new discussion instead.