Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. package Algorithms;
  2. import java.util.ArrayList;
  3. import java.util.Iterator;
  4. import java.util.Scanner;
  5.  
  6. import Processes.Process;
  7. public class SJF extends Algorithm {
  8. int n,NCompleted_process=0,system_time=0;
  9. String process_name;
  10. int arrival_time;
  11. int burst_time;
  12. int waiting_time;
  13. int turnAround_time;
  14. int complete_time;
  15. float avgWait_time=0;
  16. float avgTurnAround_time=0;
  17. ArrayList<Process> list = new ArrayList<Process>();
  18. Scanner sc = new Scanner(System.in);
  19. Scanner nameSc = new Scanner(System.in);
  20.  
  21. public void Simulate() {
  22. System.out.println("Enter number of processes:");
  23. n = sc.nextInt();
  24. for (int i = 0; i < n; i++) {
  25. Process P = new Process();
  26. System.out.println("Enter process name, arrival time, burst time");
  27. process_name = nameSc.nextLine();
  28. arrival_time = sc.nextInt();
  29. burst_time = sc.nextInt();
  30.  
  31. P.setmArrivalTime(arrival_time);
  32. P.setmBurstTime(burst_time);
  33. P.setmName(process_name);
  34. P.setmWaitingTime(waiting_time);
  35.  
  36. list.add(P);
  37. }
  38. int completed[]=new int [n];
  39.  
  40. for(int i=0;i<n;i++)
  41. {
  42. completed[i]=0;
  43. }
  44. while (true) {
  45. int x=n,minimum=1000;
  46. if(NCompleted_process==n)
  47. break;
  48. for(int i=0;i<n;i++)
  49. {
  50. if(completed[i]==0 && list.get(i).getmArrivalTime()<=system_time && list.get(i).getmBurstTime()<minimum)
  51. {
  52. minimum=list.get(i).getmBurstTime();
  53. x=i;
  54. }
  55. }
  56. if(x==n)
  57. system_time++;
  58. else
  59. {
  60. int a=(system_time)+(list.get(x).getmBurstTime());
  61. list.get(x).setmCompletionTime(a);
  62. system_time+=list.get(x).getmBurstTime();
  63. list.get(x).setmTurnAroundTime(list.get(x).getmCompletionTime() - list.get(x).getmArrivalTime());
  64. list.get(x).setmWaitingTime(list.get(x).getmTurnAroundTime() - list.get(x).getmBurstTime());
  65. completed[x]=1;
  66. NCompleted_process++;
  67. }
  68. }
  69. System.out.println("\nprocessName arrival_time brust_time complete_time turnAround_time waiting_time");
  70. for(int i=0;i<n;i++)
  71. {
  72. avgWait_time+=list.get(i).getmWaitingTime();
  73. avgTurnAround_time+=list.get(i).getmWaitingTime();
  74. System.out.println(list.get(i).getmName() + " " + list.get(i).getmArrivalTime() + " "
  75. + list.get(i).getmBurstTime() + " " + list.get(i).getmCompletionTime() + " "
  76. + list.get(i).getmTurnAroundTime() + " " + list.get(i).getmWaitingTime());
  77. }
  78. System.out.println("\n average waiting time : "+(float)(avgWait_time/n));
  79. System.out.println("\n average turn time : "+(float)(avgTurnAround_time/n));
  80. sc.close();
  81. nameSc.close();
  82. }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement