FCFS program
Input:-
#include <iostream>
#include <vector>
using namespace std;
struct Process {
int pid; // Process ID
int arrivalTime; // Arrival Time
int burstTime; // Burst Time
};
void FCFS(vector<Process>& processes) {
int n = processes.size();
int currentTime = 0;
float totalWaitingTime = 0;
cout << "FCFS Scheduling\n";
cout << "Process\tWaiting Time\n";
for (int i = 0; i < n; ++i) {
if (currentTime < processes[i].arrivalTime)
currentTime = processes[i].arrivalTime;
cout << processes[i].pid << "\t" << currentTime - processes[i].arrivalTime << endl;
totalWaitingTime += currentTime - processes[i].arrivalTime + 1;
currentTime += processes[i].burstTime;
}
float averageWaitingTime = totalWaitingTime / n;
cout << "Average Waiting Time: " << averageWaitingTime << endl;
}
int main() {
int n;
cout << "Enter the number of processes: ";
cin >> n;
vector<Process> processes(n);
cout << "Enter Arrival Time and Burst Time for each process:\n";
for (int i = 0; i < n; ++i) {
processes[i].pid = i + 1;
cout << "Arrival Time for Process " << i + 1 << ": ";
cin >> processes[i].arrivalTime;
cout << "Burst Time for Process " << i + 1 << ": ";
cin >> processes[i].burstTime;
}
FCFS(processes);
return 0;
}
Output:-
Enter the number of processes: 4
Enter Arrival Time and Burst Time for each process:
Arrival Time for Process 1: 2
Burst Time for Process 1: 3
Arrival Time for Process 2: 1
Burst Time for Process 2: 4
Arrival Time for Process 3: 3
Burst Time for Process 3: 3
Arrival Time for Process 4: 4
Burst Time for Process 4: 4
FCFS Scheduling
Process Waiting Time
1 0
2 4
3 6
4 8
Average Waiting Time: 5.5