Monday, 5 September 2016

Round Robin Algorithm in java

import java.util.*;

public class roundrobin
{
  public static void main(String args[]){
Scanner s=new Scanner(System.in);
int wait=0,n,cp=0;
float avgt=0f,avgw=0f;
int inc=0,time,counter=0,temp;
System.out.println("Enter no of processes :");
n=s.nextInt();
int data[]=new int[n];
datacontainer[] p=new datacontainer[n];
for(int i=0;i<n;i++)
{
   p[i]=new datacontainer();
}
for(int i=0;i<n;i++){
System.out.println("Burst TIME :"+(i+1));
p[i].btime=s.nextInt();
data[i]=p[i].btime;
}
System.out.print("Enter Time Q=");
time=s.nextInt();
System.out.println("\n"+"   "+"id"+"       "+"bt"+" "+"wt"+"       "+"tr");
for(int turn=0;turn<n;turn++){
wait=0;
inc=0;

for(int c=0;c<n;c++){
p[c].btime=data[c];
}
while(p[turn].btime!=0){
if(turn==n-1){
temp=p[turn].btime;
while(temp!=0){
if(temp<time){
temp=0;
}else{
temp=temp-time;
}
counter+=1;
}
for(int val=0;val<n-1;val++){
for(int cl=1;cl<=counter;cl++){
if(p[val].btime!=0){
if(p[val].btime==time || p[val].btime<time){
wait+=p[val].btime;
p[val].btime=0;
}else{
p[val].btime=p[val].btime-time;
wait+=time;
}
}
}
}
p[turn].wtime=wait;
for(int c=0;c<n;c++){
p[c].btime=data[c];
}
System.out.println("    "+ (turn+1)+ "       "+p[turn].btime+"  "+p[turn].wtime+"       "+(p[turn].wtime+p[turn].btime));
for(int i=0;i<n;i++){
avgw+=p[i].wtime;
avgt+=p[i].wtime+p[i].btime;
}
System.out.println("\n\nAverage Turn around time="+(avgt/n));
System.out.println("Average waiting time="+(avgw/n));
System.exit(0);
}
else{
if(inc==turn){
if(p[turn].btime<time){
p[turn].btime=0;
}else{
p[turn].btime=p[turn].btime-time;
}
inc=inc+1;
if(inc==n){
inc=0;
}
}else{
if(p[inc].btime<time && p[inc].btime!=0){
wait+=p[inc].btime;
p[inc].btime=0;
inc=inc+1;
}else{
if(p[inc].btime!=0){
cp=1;
wait+=time;
}
if(cp==1){
p[inc].btime=p[inc].btime-time;
cp=p[inc].btime;
}
inc=inc+1;
}
}
if(inc==n){
inc=0;
}
}
}
p[turn].wtime=wait;
for(int c=0;c<n;c++){
p[c].btime=data[c];
}
System.out.println("    "+ (turn+1)+ "       "+p[turn].btime+"  "+p[turn].wtime+"       "+(p[turn].wtime+p[turn].btime));
}

}
}
class datacontainer {
  int id,btime,atime,wtime,ttime;
}







No comments:

Post a Comment