Guest User

Untitled

a guest
Apr 20th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. #include<stdio.h>
  2. void ganttchart();
  3. int sum_of_busttime=0;
  4. int i,b;
  5. struct process
  6. {
  7. char name[10];
  8. int arrival_time;
  9. int burst_time;
  10. int turnaround_time;
  11. int weiting_time;
  12. int completed;
  13. }p[10];
  14. void main()
  15. {
  16. int j;
  17. float k=0,m=0;
  18. float avgweiting_time;
  19. float avgturnaround_time;
  20. printf("Enter the number of processes:");
  21. scanf("%d",&b);
  22. printf("enter the details of the process:\n");
  23. printf("P_Name\tA_Time\tB_time\n");
  24. for(i=0;i<b;i++)
  25. {
  26. scanf("%s%d%d",&p[i].name,&p[i].arrival_time,&p[i].burst_time);
  27. p[i].turnaround_time=0;
  28. p[i].weiting_time=0;
  29. p[i].completed=0;
  30. sum_of_busttime+=p[i].burst_time;
  31. }
  32. struct process temp;
  33. for(i=0;i<b-1;i++)
  34. {
  35. for(j=i+1;j<b;j++)
  36. {
  37. if(p[i].arrival_time>p[j].arrival_time)
  38. {
  39. temp=p[i];
  40. p[i]=p[j];
  41. p[j]=temp;
  42. }
  43. }
  44. }
  45. ganttchart();
  46. printf("P_Name\tA_Time\tB_time\tTa_Time\tWt_Time\n");
  47. for(i=0;i<b;i++)
  48. {
  49. printf("%s\t%d\t%d\t%d\t%d\n",p[i].name,p[i].arrival_time,p[i].burst_time,p[i].turnaround_time,p[i].weiting_time);
  50. }
  51. for(i=0;i<b;i++)
  52. {
  53. k=k+p[i].weiting_time;
  54. m=m+p[i].turnaround_time;
  55. }
  56. avgturnaround_time=m/b;
  57. avgweiting_time=k/b;
  58. printf("Average wating time is : %d\n",avgweiting_time);
  59. printf("Average Turnarround Time time is : %d\n",avgturnaround_time);
  60. printf("Sum of burst time :%d",sum_of_busttime);
  61. }
  62. void ganttchart()
  63. {
  64. int time,pos;
  65. float hrrn;
  66. float preority=0;
  67.  
  68. for(time=p[0].arrival_time;time<=sum_of_busttime;)
  69. {
  70. for(i=0;i<b;i++)
  71. {
  72. if(p[i].completed==0)
  73. {
  74. if(p[i].arrival_time<=time)
  75. {
  76. hrrn=(1+((time-p[i].arrival_time)/p[i].burst_time));
  77. if(hrrn>preority)
  78. {
  79. preority=hrrn;
  80. pos=i;
  81. // printf("%d",i+1);
  82. }
  83. }
  84. }
  85. }
  86. p[pos].completed=1;
  87. time+=p[pos].burst_time;
  88. p[pos].weiting_time = time - p[pos].arrival_time - p[pos].burst_time;
  89. p[pos].turnaround_time = time - p[pos].arrival_time;
  90. // printf("%d\n",time);
  91. }
  92. printf("\n");
  93.  
  94. }
Add Comment
Please, Sign In to add comment