0% found this document useful (0 votes)
10 views5 pages

Chans Assignment

Uploaded by

Shweni Doobaree4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views5 pages

Chans Assignment

Uploaded by

Shweni Doobaree4
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

import java.util.

Arrays;
import java.util.Scanner;

public class First {


public static void main(String[] args) {
int no_p;

Scanner s=new Scanner(System.in);


System.out.println("Enter the number of process: ");
no_p=s.nextInt();

int[] burst_time = new int[no_p];


System.out.println("\nEnter Burst Time for processes:");
for(int i=0;i<no_p;i++)
{
System.out.print("\tP"+(i+1)+": ");
burst_time[i]=s.nextInt();
}

do {
menu(burst_time, no_p);
System.out.println("\nDo you want to continue ?\nPress -1 to exit. Or
else continue.");
String input = new Scanner(System.in).next();
if (input.equals("-1")) {
break;
}
}
while (true);

public static void menu(int[] bt, int num) {

Scanner in = new Scanner(System.in);


System.out.println();
System.out.println("1. First come first serve");
System.out.println("2. Shortest Job First");
System.out.println("3. priority scheduling");
System.out.println("4. round robin");

System.out.println("Input choice");
int n = in.nextInt();

switch (n) {
case 1 -> algorithmOne(bt, num);
case 2 -> algorithmTwo(bt, num);
case 3 -> algorithmThree(bt, num);
case 4 -> algorithmFour(bt, num);
default -> System.out.println("ERROR!! Choice should be between 1 and
4");

}
}

public static void algorithmOne(int[] burst_time, int number) {


int[] WT;
int TWT = 0;
double avg_wait;
int time = 0;
WT=new int[number];

for (int i=0; i < number; ++i) {


WT[i] = time;
time = time + burst_time[i];
}

for(int i=0;i<number;i++)
{
TWT = TWT + WT[i];
}

avg_wait= (double) TWT/number;

System.out.println(" Process\tBurst Time\tWaiting Time");


for(int i=0;i<number;i++)
{
System.out.println("\tP"+(i+1)+"\t "+burst_time[i]+"\t\t "+WT[i]);

}
System.out.println("\
n----------------------------------------------------------------");
System.out.println("\nAverage waiting time : "+avg_wait);
}

public static void algorithmTwo(int[] burst_time, int number) {


int[] copy = new int[number];
int[] waiting_time;
double TWT = 0;
int temp = 0;
double wait_avg;

waiting_time = new int[number];

//Copy of burst time array


for (int i=0; i<number; ++i) {
copy[i] = burst_time[i];
}

//Sorting
Arrays.sort(copy);

//calculate waiting time


for (int i=0; i<number; ++i) {
for (int j=0; j<number; ++j) {
if (copy[i] == burst_time[j]) {
waiting_time[i] = temp;
temp = temp + burst_time[j];
}
}
}

for (int i=0; i< number; ++i) {


TWT = TWT + waiting_time[i];
}
//Calculating Average waiting time
wait_avg= TWT/number;

System.out.println("\nProcess\t Burst Time \tWaiting Time");


for(int i=0;i<number;i++)
{
System.out.println("\n p"+(i+1) + "\t\t "+burst_time[i]+"\t\t
"+waiting_time[i]);
}

System.out.println("\nAverage waiting time : "+wait_avg);


}

public static void algorithmThree(int[] burst_time, int number) {


Scanner s = new Scanner(System.in);

int[] copy = new int[number];

int[] p;
int[] pp;
int[] w;
int awt, TWT=0;
int temp = 0;

p = new int[number];
pp = new int[number];
w = new int[number];

//n is number of process


//p is process
//pp is process priority
//bt is process burst time
//w is wait time
// t is turnaround time
//awt is average waiting time
//atat is average turnaround time

System.out.print("Enter time priorities");

for(int i=0;i<number;i++)
{
System.out.print("\nProcess["+(i+1)+"]:");
pp[i] = s.nextInt();
p[i]=i+1;
}

//sorting on the basis of priority


for(int i=0;i<number;i++)
{
copy[i] = pp[i];
}

Arrays.sort(copy);

for (int i=0; i<number; ++i) {


for (int j=0; j<number; ++j) {
if (copy[i] == pp[j]) {
temp = temp + burst_time[j];
w[i] = temp - burst_time[j];
}
}
}

for (int i=0; i<number; ++i) {


TWT = TWT + w[i];
}

//Displaying the process

System.out.print("\n\nProcess \t Burst Time \t Wait Time \t Turn Around


Time Priority \n");
for(int i=0;i<number;i++)
System.out.print("\n "+p[i]+"\t\t "+burst_time[i]+"\t\t "+w[i]
+"\t\t "+pp[i]+"\n");
awt=TWT/number;
System.out.print("\n Average Wait Time : "+awt + "\n");
}

public static void algorithmFour(int[] burst_time, int number) {

Scanner sc = new Scanner(System.in);


int[] a =new int[number];
int[] WT =new int[number];
int[] TAT =new int[number];
int sum;
int TimeQuantum;

System.out.println("\nEnter the Time Quantum::");


TimeQuantum=sc.nextInt();
do{
for(int i=0;i<number;i++)
{
if(burst_time[i]>TimeQuantum)
{
burst_time[i]-=TimeQuantum;
for(int j=0;j<number;j++)
{
if((j!=i)&&(burst_time[j]!=0))
WT[j]+=TimeQuantum;
}
}
else
{
for(int j=0;j<number;j++)
{
if((j!=i)&&(burst_time[j]!=0))
WT[j]+=burst_time[i];
}
burst_time[i]=0;
}
}
sum=0;
for(int k=0;k<number;k++)
sum=sum+burst_time[k];
} while(sum!=0);

for(int i=0;i<number;i++) {
TAT[i] = WT[i] + a[i];
System.out.println("process\t\tBT\tWT\tTAT");
}

for(int i=0;i<number;i++)
{
System.out.println("process"+(i+1)+"\t"+a[i]+"\t"+WT[i]+"\t"+TAT[i]);
}

float avg_wt=0;
for(int j=0;j<number;j++)
{
avg_wt+=WT[j];
}

System.out.println("average waiting time "+(avg_wt/number));


}
}

You might also like