sjf premptive
Tue May 28 2024 02:49:53 GMT+0000 (Coordinated Universal Time)
Saved by
@prabhas
#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;
}
content_copyCOPY
Comments