El trabajo más corto primero (SJF) o el trabajo más corto después, es una política de programación que selecciona el proceso de espera con el menor tiempo de ejecución para ejecutar a continuación. SJN, también conocido como Shortest Job Next (SJN), puede ser preventivo o no preventivo.
Características de la Programación SJF:
C
#include <stdio.h> int main() { int A[100][4]; // Matrix for storing Process Id, Burst // Time, Average Waiting Time & Average // Turn Around Time. 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); }
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA