You are on page 1of 2

#include <stdio.

h>
#include <stdbool.h>

// Structure to represent a process


struct Process {
int id;
int burst_time;
int remaining_time;
int arrival_time;
int turnaround_time;
int waiting_time;
};
// Function to perform Round Robin scheduling
void roundRobin(struct Process processes[], int n, int time_quantum) {
int remaining_processes = n;
int current_time = 0;
struct Process *process = &processes[i];

while (remaining_processes> 0) {
for (int i = 0; i< n; i++) {
if (process->remaining_time> 0) {
int execution_time = (process->remaining_time<time_quantum) ? process-
>remaining_time : time_quantum;

current_time += execution_time;
process->remaining_time -= execution_time;

if (process->remaining_time == 0) {
remaining_processes--;
process->turnaround_time = current_time - process->arrival_time;
process->waiting_time = process->turnaround_time - process->burst_time;
}
}
}
}
}
int main() {
int n; // Number of processes
int time_quantum;
struct Process processes[n];
printf("Enter the number of processes: ");
scanf("%d", &n);
printf("Enter the time quantum for Round Robin: ");
scanf("%d", &time_quantum);

for (int i = 0; i< n; i++) {


processes[i].id = i;
printf("Enter arrival time for process %d: ", i);
scanf("%d", &processes[i].arrival_time);
printf("Enter burst time for process %d: ", i);
scanf("%d", &processes[i].burst_time);
processes[i].remaining_time = processes[i].burst_time;
}

// Perform Round Robin scheduling


roundRobin(processes, n, time_quantum);

// Calculate and display turnaround time and waiting time


double total_turnaround_time = 0;
double total_waiting_time = 0;

for (int i = 0; i< n; i++) {


total_turnaround_time += processes[i].turnaround_time;
total_waiting_time += processes[i].waiting_time;
}
double average_turnaround_time = total_turnaround_time / n;
double average_waiting_time = total_waiting_time / n;

printf("Average Turnaround Time: %.2lf\n", average_turnaround_time);


printf("Average Waiting Time: %.2lf\n", average_waiting_time);

return 0;
}

You might also like