Code:
import
java.util.*;
class
RR
{
Scanner sc=new Scanner(System.in);
int[] bur,rem,wai,ta;
int size,q,b=0,t=0,flag=0;
RR(int size)
{
this.size=size;
bur=new int[size];
wai=new int[size];
ta=new int[size];
rem=new int[size];
}
void get()
{
for(int
i=0;i<size;i++)
{
System.out.print("Enter
burst time of P"+(i+1)+":");
bur[i]=rem[i]=sc.nextInt();
}
System.out.print("Enter
quantum time:");
q=sc.nextInt();
}
void round()
{
do{
flag=0;
for(int
i=0;i<size;i++)
{
if(rem[i]>=q)
{
System.out.print("P"+(i+1)+"\t");
for(int
j=0;j<size;j++)
{
if(j==i)
rem[i]=rem[i]-q;
else
if(rem[j]>0)
wai[j]+=q;
}
}
else
if(rem[i]>0)
{
System.out.print("P"+(i+1)+"\t");
for(int
j=0;j<size;j++)
{
if(j==i)
rem[i]=0;
else
if(rem[j]>0)
wai[j]+=rem[i];
}
}
}
for(int
i=0;i<size;i++)
if(rem[i]>0)
flag=1;
}while(flag==1);
for(int
i=0;i<size;i++)
ta[i]=wai[i]+bur[i];
}
void display()
{
System.out.println("\nProcess\tBurst\tWaiting\tTurnaround");
for(int
i=0;i<size;i++)
{
System.out.println("P"+(i+1)+"\t"+bur[i]+"\t"+wai[i]+"\t"+ta[i]);
b+=wai[i];
t+=ta[i];
}
System.out.println("Average
waiting time:"+(b/size));
System.out.println("Average
Turnaround time:"+(t/size));
}
}
class
KRR
{
public static void main(String
arg[])
{
Scanner s=new
Scanner(System.in);
System.out.print("Enter
the no of process:");
int n=s.nextInt();
RR obj = new RR(n);
obj.get();
obj.round();
obj.display();
}
}
OUTPUT
Enter
the no of process:3
Enter
burst time of P1:13
Enter
burst time of P2:8
Enter
burst time of P3:3
Enter
quantum time:4
P1
P2 P3 P1
P2 P1 P1
Process
Burst Waiting Turnaround
P1
13 11 24
P2
8 11 19
P3
3 8 11
Average
waiting time:10
Average
Turnaround time:18
No comments:
Post a Comment