sjf non premptive

PHOTO EMBED

Tue May 28 2024 02:49:20 GMT+0000 (Coordinated Universal Time)

Saved by @prabhas

#include <stdio.h>

int main() {
    int bt[20], p[20], wt[20], tat[20], i, j, n, total = 0, pos, temp;
    float avg_wt, avg_tat;

    printf("Enter number of processes: ");
    scanf("%d", &n);

    printf("\nEnter Burst Time:\n");
    for (i = 0; i < n; i++) {
        printf("p%d: ", i + 1);
        scanf("%d", &bt[i]);
        p[i] = i + 1; // Process number
    }

    // Sorting of burst times and process numbers in ascending order
    for (i = 0; i < n; i++) {
        pos = i;
        for (j = i + 1; j < n; j++) {
            if (bt[j] < bt[pos])
                pos = j;
        }

        // Swapping burst time
        temp = bt[i];
        bt[i] = bt[pos];
        bt[pos] = temp;

        // Swapping process number
        temp = p[i];
        p[i] = p[pos];
        p[pos] = temp;
    }

    wt[0] = 0; // Waiting time for the first process is 0

    // Calculating waiting time
    for (i = 1; i < n; i++) {
        wt[i] = 0;
        for (j = 0; j < i; j++)
            wt[i] += bt[j];

        total += wt[i];
    }

    avg_wt = (float) total / n; // Average waiting time
    total = 0;

    printf("\nProcess\t    Burst Time    Waiting Time    Turnaround Time\n");
    for (i = 0; i < n; i++) {
        tat[i] = bt[i] + wt[i]; // Calculating turnaround time
        total += tat[i];
        printf("p%d\t\t  %d\t\t    %d\t\t    %d\n", p[i], bt[i], wt[i], tat[i]);
    }

    avg_tat = (float) total / n; // Average turnaround time
    printf("\nAverage Waiting Time = %.2f", avg_wt);
    printf("\nAverage Turnaround Time = %.2f\n", avg_tat);

    return 0;
}
content_copyCOPY