fork download
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. int n, tq, i, time = 0, done = 0;
  5. int bt[20], rem[20], wt[20], tat[20];
  6.  
  7. printf("Enter number of processes: ");
  8. scanf("%d", &n);
  9.  
  10. printf("Enter burst time for each process:\n");
  11. for (i = 0; i < n; i++) {
  12. printf("P%d: ", i+1);
  13. scanf("%d", &bt[i]);
  14. rem[i] = bt[i];
  15. wt[i] = 0;
  16. }
  17.  
  18. printf("Enter time quantum: ");
  19. scanf("%d", &tq);
  20.  
  21. while (done < n) {
  22. for (i = 0; i < n; i++) {
  23. if (rem[i] > 0) {
  24. if (rem[i] > tq) {
  25. time += tq;
  26. rem[i] -= tq;
  27. } else {
  28. time += rem[i];
  29. wt[i] = time - bt[i];
  30. rem[i] = 0;
  31. done++;
  32. }
  33. }
  34. }
  35. }
  36.  
  37. float total_wt = 0, total_tat = 0;
  38.  
  39. for (i = 0; i < n; i++) {
  40. tat[i] = wt[i] + bt[i];
  41. total_wt += wt[i];
  42. total_tat += tat[i];
  43. }
  44.  
  45. printf("\nProcess\tBT\tWT\tTAT\n");
  46. for (i = 0; i < n; i++)
  47. printf("P%d\t%d\t%d\t%d\n", i+1, bt[i], wt[i], tat[i]);
  48.  
  49. printf("\nAverage Waiting Time = %.2f", total_wt / n);
  50. printf("\nAverage Turnaround Time = %.2f\n", total_tat / n);
  51.  
  52. return 0;
  53. }
  54.  
Success #stdin #stdout 0.01s 5268KB
stdin
Enter number of processes: 3
Enter burst time for each process:
P1: 5
P2: 7
P3: 4
Enter time quantum: 2
stdout
Enter number of processes: Enter burst time for each process:
Enter time quantum: 
Process	BT	WT	TAT

Average Waiting Time     = -nan
Average Turnaround Time  = -nan