-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathfcfs.cpp
More file actions
72 lines (63 loc) · 2.37 KB
/
fcfs.cpp
File metadata and controls
72 lines (63 loc) · 2.37 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
/***** FCFS Scheduling ******/
#include<bits/stdc++.h>
using namespace std;
template<class T>
void display(vector<T> array) {
for(int i = 0; i<array.size();i++) {
cout<<array[i]<<"\t"<<endl;
}
}
vector<int> completionTime(vector<string> processID, vector<int> arrivalTime, vector<int> burstTime) {
int len = processID.size()+1;
vector<int> completionTimeResult(len);
completionTimeResult[0] = 0;
for(int i = 1; i < completionTimeResult.size(); i++) {
completionTimeResult[i] = completionTimeResult[i-1] + burstTime[i-1];
}
//display(completionTimeResult);
return completionTimeResult;
}
vector<int> turnAroundTime(vector<string> processID, vector<int> arrivalTime, vector<int> completionTimeResult) {
vector<int> tatResult(processID.size(), 0);
for(int i = 0; i < tatResult.size(); i++) {
tatResult[i] = completionTimeResult[i+1] - arrivalTime[i];
}
return tatResult;
}
vector<int> waitingTime(vector<string> processID, vector<int> burstTime, vector<int> tatTime) {
vector<int> waitingTimeResult(processID.size(), 0);
for(int i = 0; i < waitingTimeResult.size(); i++) {
waitingTimeResult[i] = tatTime[i] - burstTime[i];
}
return waitingTimeResult;
}
int main() {
vector<string> processID;
vector<int> arrivalTime;
vector<int> burstTime;
string pid;
int at, bt;
cout<<"Enter the process IDs"<<endl;
for(int i = 0; i < 5; i++) {
cin>>pid;
processID.push_back(pid);
}
cout<<"Enter the arrival times for each process"<<endl;
for(int i = 0; i < 5; i++) {
cin>>at;
arrivalTime.push_back(at);
}
cout<<"Enter the burst times for each process"<<endl;
for(int i = 0; i < 5; i++) {
cin>>bt;
burstTime.push_back(bt);
}
vector<int> compl_time = completionTime(processID, arrivalTime, burstTime);
vector<int> tat_time = turnAroundTime(processID, arrivalTime, compl_time);
vector<int> wait_time = waitingTime(processID, burstTime, tat_time);
cout<<"Process ID"<<"\t"<<"Arrival Time"<<"\t"<<"Burst Time"<<"\t"<<"Completion Time"<<"\t\t"<<"Turn Around Time"<<"\t"<<"Waiting Time"<<endl;
for(int i = 0; i < processID.size(); i++) {
cout<<" "<<processID[i]<<"\t\t"<<arrivalTime[i]<<"\t\t"<<burstTime[i]<<"\t\t"<<compl_time[i+1]<<"\t\t\t"<<tat_time[i]<<"\t\t\t"<<wait_time[i]<<endl;
}
return 0;
}