-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPCB.java
More file actions
97 lines (81 loc) · 3.11 KB
/
PCB.java
File metadata and controls
97 lines (81 loc) · 3.11 KB
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
public class PCB {
//------------------------------------attributes------------------------------------
private String processID ;
private int priority; //1, 2. 1 is for Q1
private double arrivalTime, CPUburst, startTime, terminationTime, turnAroundTime, waitingTime, responseTime,remainingCPUburst;
// ------------------------------------constructor------------------------------------
public PCB(int processID, int priority, double arrivalTime, double CPUburst) {
this.processID = "P"+ processID; //it's written in the project description that an id starts with P
this.priority = priority;
this.arrivalTime = arrivalTime;
this.CPUburst = CPUburst;
remainingCPUburst = CPUburst;
// to be calculated
this.startTime = -1 ;
this.terminationTime = 0;
this.turnAroundTime = 0;
this.waitingTime = 0;
this.responseTime = 0;
}
// ------------------------------------getters------------------------------------
public String getProcessID() {
return processID;
}
public int getPriority() {
return priority;
}
public double getArrivalTime() {
return arrivalTime;
}
public double getCPUburst() {
return CPUburst;
}
public double getStartTime() {
return startTime;
}
public double getTerminationTime() {
return terminationTime;
}
public double getTurnAroundTime() {
return turnAroundTime;
}
public double getWaitingTime() {
return waitingTime;
}
public double getResponseTime() {
return responseTime;
}
public double getremainingCPUburst(){
return remainingCPUburst;
}
// ------------------------------------setters for "To be calculated" ------------------------------------
public void setStartTime(double startTime) {
this.startTime = startTime;
}
public void setTerminationTime(double terminationTime) {
this.terminationTime = terminationTime;
}
public void setTurnAroundTime(double turnAroundTime) {
this.turnAroundTime = turnAroundTime;
}
public void setWaitingTime(double waitingTime) {
this.waitingTime = waitingTime;
}
public void setResponseTime(double responseTime) {
this.responseTime = responseTime;
}
public void setCpuBurst(double CPUburst){
this.CPUburst = CPUburst;
}
public void setremainingCPUburst(double remainingCPUburst){
this.remainingCPUburst = remainingCPUburst;
}
// ------------------------------------print------------------------------------
public String printProcessInfo() {
return "Process ID: " + processID + ",\nPriority: " + priority +
"\nArrival Time: " + arrivalTime + "\nCPU Burst: " + CPUburst +
"\nStart Time: " + startTime + "\nTermination Time: " + terminationTime +
"\nTurnaround Time: " + turnAroundTime + "\nWaiting Time: " + waitingTime +
"\nResponse Time: " + responseTime + "\n----------------------------------------------------------";
}
}