sjf premptive

PHOTO EMBED

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