From d3bd88d3d88116d62ae802ef8ad9517a7103c775 Mon Sep 17 00:00:00 2001 From: 2203031241446 <162948875+2203031241446@users.noreply.github.com> Date: Mon, 11 Mar 2024 10:34:46 +0530 Subject: [PATCH] Create SJF ALGORITHM --- SJF ALGORITHM | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 SJF ALGORITHM diff --git a/SJF ALGORITHM b/SJF ALGORITHM new file mode 100644 index 0000000..1a780d8 --- /dev/null +++ b/SJF ALGORITHM @@ -0,0 +1,55 @@ +#include +int main() +{ + // Matrix for storing Process Id, Burst + // Time, Average Waiting Time & Average + // Turn Around Time. + int A[100][4]; + int i, j, n, total = 0, index, temp; + float avg_wt, avg_tat; + printf("Enter number of process: "); + scanf("%d", &n); + printf("Enter Burst Time:\n"); + // User Input Burst Time and alloting Process Id. + for (i = 0; i < n; i++) { + printf("P%d: ", i + 1); + scanf("%d", &A[i][1]); + A[i][0] = i + 1; + } + // Sorting process according to their Burst Time. + for (i = 0; i < n; i++) { + index = i; + for (j = i + 1; j < n; j++) + if (A[j][1] < A[index][1]) + index = j; + temp = A[i][1]; + A[i][1] = A[index][1]; + A[index][1] = temp; + + temp = A[i][0]; + A[i][0] = A[index][0]; + A[index][0] = temp; + } + A[0][2] = 0; + // Calculation of Waiting Times + for (i = 1; i < n; i++) { + A[i][2] = 0; + for (j = 0; j < i; j++) + A[i][2] += A[j][1]; + total += A[i][2]; + } + avg_wt = (float)total / n; + total = 0; + printf("P BT WT TAT\n"); + // Calculation of Turn Around Time and printing the + // data. + for (i = 0; i < n; i++) { + A[i][3] = A[i][1] + A[i][2]; + total += A[i][3]; + printf("P%d %d %d %d\n", A[i][0], + A[i][1], A[i][2], A[i][3]); + } + avg_tat = (float)total / n; + printf("Average Waiting Time= %f", avg_wt); + printf("\nAverage Turnaround Time= %f", avg_tat); +}