#include <stdio.h> int main() { int arrival_time[10], burst_time[10], remaining_time[10]; int i, smallest, count = 0, time, limit; double wait_time = 0, turnaround_time = 0, end_time; float average_waiting_time, average_turnaround_time; printf("Enter the Total Number of Processes: "); scanf("%d", &limit); printf("Enter Details of %d Processes\n", limit); for (i = 0; i < limit; i++) { printf("Enter Arrival Time for Process %d: ", i + 1); scanf("%d", &arrival_time[i]); printf("Enter Burst Time for Process %d: ", i + 1); scanf("%d", &burst_time[i]); remaining_time[i] = burst_time[i]; } remaining_time[9] = 9999; // Sentinel value for comparison for (time = 0; count != limit; time++) { smallest = 9; for (i = 0; i < limit; i++) { if (arrival_time[i] <= time && remaining_time[i] < remaining_time[smallest] && remaining_time[i] > 0) { smallest = i; } } remaining_time[smallest]--; if (remaining_time[smallest] == 0) { count++; end_time = time + 1; wait_time += end_time - arrival_time[smallest] - burst_time[smallest]; turnaround_time += end_time - arrival_time[smallest]; } } average_waiting_time = wait_time / limit; average_turnaround_time = turnaround_time / limit; printf("\nAverage Waiting Time: %.2lf", average_waiting_time); printf("\nAverage Turnaround Time: %.2lf\n", average_turnaround_time); return 0; }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter