Advertisement
ghorardim

FCFS (Process)

Nov 12th, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const long long mx=1e5;
  5.  
  6. int n;
  7. int process_id[mx+5];
  8. int burst_time[mx+5];
  9. int arrival_time[mx+5];
  10. int waiting_time[mx+5];
  11. int finishing_time[mx+5];
  12. int turn_around_time[mx+5];
  13.  
  14. void find_waiting_and_turn_around_time(void)
  15. {
  16. int i;
  17.  
  18. finishing_time[0] = arrival_time[1];
  19. for(i=1; i<=n; i++)
  20. {
  21. finishing_time[i] = finishing_time[i-1] + burst_time[i];
  22. turn_around_time[i] = finishing_time[i] - arrival_time[i];
  23. waiting_time[i] = finishing_time[i] - arrival_time[i] - burst_time[i];
  24. }
  25. return;
  26. }
  27.  
  28. void find_average_times(void)
  29. {
  30. int i;
  31. double total_waiting_time, total_turn_around_time, N;
  32.  
  33. find_waiting_and_turn_around_time();
  34.  
  35. N = n;
  36. total_waiting_time = 0.0;
  37. total_turn_around_time = 0.0;
  38. for(i=1; i<=n; i++)
  39. {
  40. total_waiting_time += waiting_time[i];
  41. total_turn_around_time += turn_around_time[i];
  42. }
  43. printf("Average Waiting Time: %.02f\n", (total_waiting_time/N));
  44. printf("Average Turn Around Time: %.02f\n", (total_turn_around_time/N));
  45. return;
  46. }
  47.  
  48. int main()
  49. {
  50. int i;
  51. printf("Number of Processes: ");
  52. cin>>n;
  53.  
  54. printf("Process Ids:\n");
  55. for(i=1; i<=n; i++) cin>>process_id[i];
  56.  
  57. printf("Process Burst Times:\n");
  58. for(i=1; i<=n; i++) cin>>burst_time[i];
  59.  
  60. printf("Process Arrival Times:\n");
  61. for(i=1; i<=n; i++) cin>>arrival_time[i];
  62.  
  63. find_average_times();
  64.  
  65. return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement