#include #include #include using namespace std; struct Process { int id; int burstTime; int remainingTime; int waitingTime; int turnaroundTime; }; void roundRobinScheduling(vector &processes, int quantum) { int n = processes.size(); queue readyQueue; vector completionTimes(n, 0); int currentTime = 0; for (int i = 0; i < n; ++i) { readyQueue.push(i); processes[i].remainingTime = processes[i].burstTime; } while (!readyQueue.empty()) { int currentProcessId = readyQueue.front(); readyQueue.pop(); if (processes[currentProcessId].remainingTime <= quantum) { currentTime += processes[currentProcessId].remainingTime; processes[currentProcessId].remainingTime = 0; processes[currentProcessId].turnaroundTime = currentTime; processes[currentProcessId].waitingTime = processes[currentProcessId].turnaroundTime - processes[currentProcessId].burstTime; completionTimes[currentProcessId] = currentTime; } else { currentTime += quantum; processes[currentProcessId].remainingTime -= quantum; readyQueue.push(currentProcessId); } } cout<<"Time Quantum = 4"; cout << "Process ID\tBurst Time\tWaiting Time\tTurnaround Time\n"; for (int i = 0; i < n; ++i) { cout << processes[i].id << "\t\t" << processes[i].burstTime << "\t\t" << processes[i].waitingTime << "\t\t" << processes[i].turnaroundTime << '\n'; } } int main() { vector processes = { {1, 6, 0, 0, 0}, {2, 8, 0, 0, 0}, {3, 7, 0, 0, 0}, {4, 3, 0, 0, 0} }; int timeQuantum = 4; roundRobinScheduling(processes, timeQuantum); return 0; }