OneCompiler

round program

118

Input:-
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
struct Process {
int pid; // Process ID
int arrivalTime; // Arrival Time
int burstTime; // Burst Time
};
void roundRobin(vector<Process>& processes, int quantum) {
int n = processes.size();
float totalWaitingTime = 0;
cout << "\nRound Robin Scheduling (Quantum: " << quantum << ")\n";
cout << "Process\tWaiting Time\n";
queue<Process> readyQueue;
int currentTime = 0;
for (int i = 0; i < n; ++i)
readyQueue.push(processes[i]);
while (!readyQueue.empty()) {
Process currentProcess = readyQueue.front();
readyQueue.pop();
if (currentProcess.burstTime > quantum) {
currentTime += quantum;
currentProcess.burstTime -= quantum;
readyQueue.push(currentProcess);
} else {
currentTime += currentProcess.burstTime;
totalWaitingTime += currentTime - currentProcess.arrivalTime - currentProcess.burstTime;
}
}
float averageWaitingTime = totalWaitingTime / n;
cout << "Average Waiting Time: " << averageWaitingTime << endl;
}
int main() {
int n, quantum;
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;
}
cout << "Enter time quantum for Round Robin: ";
cin >> quantum;
roundRobin(processes, quantum);
return 0;
}

Output:-

Enter the number of processes: 3
Enter Arrival Time and Burst Time for each process:
Arrival Time for Process 1: 1
Burst Time for Process 1: 2
Arrival Time for Process 2: 2
Burst Time for Process 2: 3
Arrival Time for Process 3: 2
Burst Time for Process 3: 4
Enter time quantum for Round Robin: 2
Round Robin Scheduling (Quantum: 2)
Process Waiting Time
Average Waiting Time: 2.66667