Advertisement
Guest User

priorioty non

a guest
Dec 13th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef struct process
  5. {
  6. char name[5];
  7. int bt;
  8. int at;
  9. int prt;
  10. int wt,ta;
  11. int flag;
  12. } processes;
  13.  
  14. int main()
  15. {
  16. processes P[10];
  17. int i,n;
  18. printf("\n Enter total no. of processes : ");
  19. scanf("%d",&n);
  20. for(i=0; i<n; i++)
  21. {
  22. printf("\n PROCESS [%d]",i+1);
  23. printf(" Enter process name : ");
  24. scanf("%s",&P[i].name);
  25. printf(" Enter burst time : ");
  26. scanf("%d",&P[i].bt);
  27. printf(" Enter arrival time : ");
  28. scanf("%d",&P[i].at);
  29. printf(" Enter priority : ");
  30. scanf("%d",&P[i].prt);
  31. }
  32. printf("\n PROC.\tB.T.\tA.T.\tPRIORITY");
  33. for(i=0; i<n; i++)
  34. printf("\n %s\t%d\t%d\t%d",P[i].name,P[i].bt,P[i].at,P[i].prt);
  35.  
  36. /*processes t;
  37. int j,temp[20];
  38. for(i=1;i<n;i++)
  39. for(j=0;j<n-i;j++){
  40. if(temp[j].at > temp[j+1].at){
  41. t = temp[j];
  42. temp[j] = temp[j+1];
  43. temp[j+1] = t;
  44. }
  45. }
  46. */
  47. processes temp[10];
  48. processes t;
  49. int sumw=0,sumt=0;
  50. float avgwt=0.0,avgta=0.0;
  51. int j;
  52. int x = 0;
  53.  
  54. for(i=0; i<n; i++)
  55. temp[i]=P[i];
  56.  
  57. for(i=1; i<n; i++)
  58. for(j=0; j<n-i; j++)
  59. {
  60. if(temp[j].at > temp[j+1].at)
  61. {
  62. t = temp[j];
  63. temp[j] = temp[j+1];
  64. temp[j+1] = t;
  65. }
  66. }
  67.  
  68. for(i=2; i<n; i++)
  69. for(j=1; j<n-i+1; j++)
  70. {
  71. if(temp[j].prt > temp[j+1].prt)
  72. {
  73. t = temp[j];
  74. temp[j] = temp[j+1];
  75. temp[j+1] = t;
  76. }
  77. }
  78.  
  79. printf("\n\n PROC.\tB.T.\tA.T.");
  80. for(i=0; i<n; i++)
  81. printf("\n %s\t%d\t%d",temp[i].name,temp[i].bt,temp[i].at);
  82.  
  83. sumw = temp[0].wt = 0;
  84. sumt = temp[0].ta = temp[0].bt - temp[0].at;
  85.  
  86. for(i=1; i<n; i++)
  87. {
  88. temp[i].wt = (temp[i-1].bt + temp[i-1].at + temp[i-1].wt) - temp[i].at;;
  89. temp[i].ta = (temp[i].wt + temp[i].bt);
  90. sumw+=temp[i].wt;
  91. sumt+=temp[i].ta;
  92. }
  93. avgwt = (float)sumw/n;
  94. avgta = (float)sumt/n;
  95. printf("\n\n PROC.\tB.T.\tA.T.\tW.T\tT.A.T");
  96. for(i=0; i<n; i++)
  97. printf("\n %s\t%d\t%d\t%d\t%d",temp[i].name,temp[i].bt,temp[i].at,temp[i].wt,temp[i].ta);
  98.  
  99. printf("\n\n GANTT CHART\n ");
  100. for(i=0; i<n; i++)
  101. printf(" %s ",temp[i].name);
  102. printf("\n ");
  103.  
  104. printf("0\t");
  105. for(i=1; i<=n; i++)
  106. {
  107. x+=temp[i-1].bt;
  108. printf("%d ",x);
  109. }
  110. printf("\n\n Average waiting time = %0.2f\n Average turn-around = %0.2f.",avgwt,avgta);
  111. return 0;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement