Facebook
From Round robin, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 160
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.     int i, sum = 0, qt, n, temp, count = 0, l = 0, k = 1;
  5.     int bt[20], tt[20], wt[20], bt_cp[20], p[20], gt[20], time[20] = {0};
  6.     float wt_avg = 0, tt_avg = 0;
  7.  
  8.     printf("\nEnter the number of Processes : ");
  9.     scanf("%d", &n);
  10.  
  11.     printf("\nEnter the Burst Time of Each Process:\n");
  12.     for (i = 0; i < n; i++) {
  13.         p[i] = i + 1;
  14.         printf("P%d : ", i + 1);
  15.         scanf("%d", &bt;[i]);
  16.         bt_cp[i] = bt[i];
  17.     }
  18.  
  19.     printf("\nEnter the Time Slice: ");
  20.     scanf("%d", &qt;);
  21.  
  22.     while (count != n) {
  23.         for (i = 0, count = 0; i < n; i++) {
  24.             if (bt_cp[i] == 0) {
  25.                 count++;
  26.                 continue;
  27.             }
  28.             if (bt_cp[i] > qt) {
  29.                 bt_cp[i] -= qt;
  30.                 temp = qt;
  31.             } else {
  32.                 temp = bt_cp[i];
  33.                 bt_cp[i] = 0;
  34.             }
  35.             sum += temp;
  36.             tt[i] = sum;
  37.             gt[l++] = p[i];
  38.             time[k] = time[k - 1] + temp;
  39.             k++;
  40.         }
  41.     }
  42.  
  43.     for (i = 0; i < n; i++) {
  44.         wt[i] = tt[i] - bt[i];
  45.         wt_avg += wt[i];
  46.         tt_avg += tt[i];
  47.     }
  48.  
  49.     wt_avg /= n;
  50.     tt_avg /= n;
  51.  
  52.     printf("\nProcess\t\tBurst Time\tWaiting Time\tTurnaround Time\n");
  53.     for (i = 0; i < n; i++)
  54.         printf("P%d\t\t%d\t\t%d\t\t%d\n", p[i], bt[i], wt[i], tt[i]);
  55.  
  56.     printf("\nAverage Waiting Time: %.2f ms", wt_avg);
  57.     printf("\nAverage Turnaround Time: %.2f ms\n", tt_avg);
  58.  
  59.     printf("\n\n\t\t\t\tGantt Chart\n\n");
  60.     printf("----------------------\n");
  61.     for (i = 0; i < l; i++)
  62.         printf("|\tP%d\t|", gt[i]);
  63.     printf("\n--------------------\n");
  64.     for (i = 0; i < k; i++)
  65.         printf("%d\t   \t", time[i]);
  66.     printf("\n--------------------\n");
  67.  
  68.     return 0;
  69. }