Advertisement
Guest User

sjf non preemitive

a guest
Dec 13th, 2019
97
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. int x = 0;
  51. float avgwt=0.0,avgta=0.0;
  52. int j;
  53.  
  54. for(i=0; i<n; i++)
  55. temp[i]=P[i];
  56. for(i=1; i<n; i++)
  57. for(j=0; j<n-i; j++)
  58. {
  59. if(temp[j].at > temp[j+1].at)
  60. {
  61. t = temp[j];
  62. temp[j] = temp[j+1];
  63. temp[j+1] = t;
  64. }
  65. }
  66.  
  67. for(i=2; i<n; i++)
  68. for(j=1; j<n-i+1; j++)
  69. {
  70. if(temp[j].bt > temp[j+1].bt)
  71. {
  72. t = temp[j];
  73. temp[j] = temp[j+1];
  74. temp[j+1] = t;
  75. }
  76. }
  77.  
  78. printf("\n\n PROC.\tB.T.\tA.T.");
  79. for(i=0; i<n; i++)
  80. printf("\n %s\t%d\t%d",temp[i].name,temp[i].bt,temp[i].at);
  81.  
  82. sumw = temp[0].wt = 0;
  83. sumt = temp[0].ta = temp[0].bt - temp[0].at;
  84.  
  85. for(i=1; i<n; i++)
  86. {
  87. temp[i].wt = (temp[i-1].bt + temp[i-1].at + temp[i-1].wt) - temp[i].at;;
  88. temp[i].ta = (temp[i].wt + temp[i].bt);
  89. sumw+=temp[i].wt;
  90. sumt+=temp[i].ta;
  91. }
  92. avgwt = (float)sumw/n;
  93. avgta = (float)sumt/n;
  94. printf("\n\n PROC.\tB.T.\tA.T.\tW.T\tT.A.T");
  95. for(i=0; i<n; i++)
  96. 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);
  97.  
  98. printf("\n\n GANTT CHART\n ");
  99. for(i=0; i<n; i++)
  100. printf(" %s ",temp[i].name);
  101. printf("\n ");
  102.  
  103. printf("0\t");
  104. for(i=1; i<=n; i++)
  105. {
  106. x+=temp[i-1].bt;
  107. printf("%d ",x);
  108. }
  109. printf("\n\n Average waiting time = %0.2f\n Average turn-around = %0.2f.",avgwt,avgta);
  110.  
  111. return 0;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement