-
Notifications
You must be signed in to change notification settings - Fork 0
/
FCFS.java
81 lines (54 loc) · 2 KB
/
FCFS.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import java.text.ParseException;
import java.util.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class FCFS {
pcb fcfs=new pcb();
int counter=0;
public void addFcfs(int bursTime){
fcfs.ar[counter]=counter;
fcfs.bt[counter]=bursTime;
fcfs.pid[counter]=++counter;
}
public void findTurnAroundTime() {
// calculating turnaround time by adding
// bt[i] + wt[i]
for (int i = 0; i < counter; i++) {
fcfs.ta[i] = fcfs.bt[i] + fcfs.wt[i];
}
}
public void findWaitingTime() {
fcfs.wt[0] = 0;
// calculating waiting time
for (int i = 1; i < counter; i++) {
fcfs.wt[i] = fcfs.bt[i - 1] + fcfs.wt[i - 1];
}
}
public void findavgTime() {
int wt[] = new int[30], tat[] = new int[30];
int total_wt = 0, total_tat = 0, total_ca=0;
findWaitingTime();
findTurnAroundTime();
//Display processes along with all details
System.out.printf("Processes BurstTime Waiting"
+"Time TurnAroundTime\n");
// Calculate total waiting time and total turn
// around time
for (int i = 0; i < counter; i++) {
total_wt = total_wt + fcfs.wt[i];
total_tat = total_tat + fcfs.ta[i];
total_ca = total_ca + fcfs.ct[i];
System.out.printf(" %d ", (i + 1));
System.out.printf(" %d ", fcfs.bt[i]);
System.out.printf(" %d", fcfs.wt[i]);
System.out.printf(" %d\n", fcfs.ta[i]);
}
float s = (float)total_wt /(float) counter;
int t = total_tat / counter;
float c= (float)total_ca /(float) counter;
System.out.printf("Average waiting time = %f", s);
System.out.printf("\n");
System.out.printf("Average turn around time = %d ", t);
}
}