round robin scheduling algorithm program in java

  • Round robin Scheduling algorithm (RR) is designed especially for time sharing system.It is similar to FCFS scheduling,but preempted is added to switch between processes.A small unit of time called a time quantum is defined.a time quantum is generally from 10 to 100 milliseconds.The CPU scheduler goes around the ready queue ,allocating the CPU to each process for a time interval of up to 1 time quantum.
  • Input of Round robin Scheduling algorithm (RR) is:
    n=number of processes
    bt[]  =burst time array
    wt[] =waiting time array
    tat[] =turn around time array
    sum = is used for addition of bt,wt,tat
    a[]   = is used for maintain original burst time before calculations.
  • Output of Round robin Scheduling algorithm (RR) is:
    float avg_wt =average waiting time
    float avg_tat =Average turn around time

ROUND ROBIN SCHEDULING ALGORITHM Program:


import java.io. * ;
class round {
	public static void main(String args[]) throws IOException {
		DataInputStream in =new DataInputStream(System. in );
		int i,
		j,
		k,
		q,
		sum = 0;
		System.out.println("Enter number of process:");
		int n = Integer.parseInt( in .readLine());
		int bt[] = new int[n];
		int wt[] = new int[n];
		int tat[] = new int[n];
		int a[] = new int[n];
		System.out.println("Enter brust Time:");
		for (i = 0; i < n; i++) {
			System.out.println("Enter brust Time for " + (i + 1));
			bt[i] = Integer.parseInt( in .readLine());
		}
		System.out.println("Enter Time quantum:");
		q = Integer.parseInt( in .readLine());
		for (i = 0; i < n; i++)
		a[i] = bt[i];
		for (i = 0; i < n; i++) {
			wt[i] = 0;

		}
		do {
			for (i = 0; i < n; i++) {
				if (bt[i] > q) {
					bt[i] -= q;
					for (j = 0; j < n; j++) {
						if ((j != i) && (bt[j] != 0)) wt[j] += q;
					}
				} else {
					for (j = 0; j < n; j++) {
						if ((j != i) && (bt[j] != 0)) wt[j] += bt[i];
					}
					bt[i] = 0;
				}
			}
			sum = 0;
			for (k = 0; k < n; k++)
			sum = sum + bt[k];
		}
		while ( sum != 0 );

		for (i = 0; i < n; i++) {
			tat[i] = wt[i] + a[i];

		}

		System.out.println("process\t\tBT\tWT\tTAT");
		for (i = 0; i < n; i++) {
			System.out.println("process" + (i + 1) + "\t" + a[i] + "\t" + wt[i] + "\t" + tat[i]);
		}

		float avg_wt = 0;
		float avg_tat = 0;
		for (j = 0; j < n; j++) {
			avg_wt += wt[j];
		}
		for (j = 0; j < n; j++) {
			avg_tat += tat[j];
		}

		System.out.println("average waiting time " + (avg_wt / n) + "\n Average turn around time" + (avg_tat / n));
	}
}

 

/*Round robin Scheduling algorithm output:

Enter number of process:
4
Enter brust Time:
Enter brust Time for 1
4
Enter brust Time for 2
5
Enter brust Time for 3
6
Enter brust Time for 4
7
Enter Time quantum:
4

process           BT     WT       TAT
process1         4         0             4
process2        5         12           17
process3        6         13           19
process4        7         15           22

average waiting time 10.0
Average turn around time15.5
*/

Download “round-robin.txt” round-robin.txt – Downloaded 309 times – 1 KB

You may also like...

3 Responses

  1. nil mesar says:

    Your code is not properly organized .

Leave a Reply

Your email address will not be published. Required fields are marked *