diff --git a/ROUND ROBIN.C b/ROUND ROBIN.C new file mode 100644 index 0000000..f5a7a9a --- /dev/null +++ b/ROUND ROBIN.C @@ -0,0 +1,69 @@ +#include + +int main() +{ + int i, limit, total = 0, x, counter = 0, time_quantum; + int wait_time = 0, turnaround_time = 0, arrival_time[10], burst_time[10], temp[10]; + float average_wait_time, average_turnaround_time; + printf("Enter Total Number of Processes:"); + scanf("%d", &limit); + x = limit; + for(i = 0; i < limit; i++) + { + printf("\nEnter Details of Process[%d] \n", i + 1); + + printf("\nArrival Time: "); + + scanf("%d", &arrival_time[i]); + + printf("\n Burst Time:"); + + scanf("%d", &burst_time[i]); + + temp[i] = burst_time[i]; + } + + printf("\n Enter Time Quantum:"); + scanf("%d", &time_quantum); + printf("Process ID\t\tBurst Time\t Turnaround Time\t Waiting Time\n"); + for(total = 0, i = 0; x != 0;) + { + if(temp[i] <= time_quantum && temp[i] > 0) + { + total = total + temp[i]; + temp[i] = 0; + counter = 1; + } + else if(temp[i] > 0) + { + temp[i] = temp[i] - time_quantum; + total = total + time_quantum; + } + if(temp[i] == 0 && counter == 1) + { + x--; + printf("\nProcess[%d]\t\t%d\t\t %d\t\t\t %d", i + 1, burst_time[i], total - arrival_time[i], total - arrival_time[i] - burst_time[i]); + wait_time = wait_time + total - arrival_time[i] - burst_time[i]; + turnaround_time = turnaround_time + total - arrival_time[i]; + counter = 0; + } + if(i == limit - 1) + { + i = 0; + } + else if(arrival_time[i + 1] <= total) + { + i++; + } + else + { + i = 0; + } + } + + average_wait_time = wait_time * 1.0 / limit; + average_turnaround_time = turnaround_time * 1.0 / limit; + printf("\nAverage Waiting Time:\t%f", average_wait_time); + printf("\nAvg Turnaround Time:\t%f", average_turnaround_time); + return 0; +} \ No newline at end of file diff --git a/ROUND ROBIN.exe b/ROUND ROBIN.exe new file mode 100644 index 0000000..9823f32 Binary files /dev/null and b/ROUND ROBIN.exe differ