Advertisement
Guest User

Untitled

a guest
Dec 5th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.66 KB | None | 0 0
  1.   public static void SimulateRR(ArrayList<FakeProcess> processes, ArrayList<FakeDevice> devices, long timeQuantum) {
  2.         if (timeQuantum <= 0)
  3.             return;
  4.         for (FakeDevice item : devices) {
  5.             item.setCurrentProcess(null);
  6.         }
  7.         ArrayList<Long> remainBurstTime = new ArrayList<>(processes.size());
  8.         for (int i = 0; i < processes.size(); i++) {
  9.             processes.get(i).setWaitingTime(0);
  10.             processes.get(i).setTurnaroundTime(0);
  11.             remainBurstTime.add(processes.get(i).getBurstTime());
  12.         }
  13.         long totalTime = 0;
  14.         int totalRemain = processes.size();
  15.         while (totalRemain != 0) {
  16.             for (int i = 0; i < processes.size(); i++) {
  17.                 if (remainBurstTime.get(i) <= timeQuantum && remainBurstTime.get(i) > 0 && processes.get(i).canCaptureDevices()) {
  18.                     processes.get(i).captureDevices();
  19.                     totalTime += remainBurstTime.get(i);
  20.                     remainBurstTime.set(i, 0L);
  21.                     {
  22.                         totalRemain--;
  23.                         processes.get(i).setWaitingTime(totalTime - processes.get(i).getBurstTime());
  24.                         processes.get(i).setTurnaroundTime(totalTime);
  25.                         processes.get(i).releaseDevices();
  26.                     }
  27.                 } else if (remainBurstTime.get(i) > 0 && processes.get(i).canCaptureDevices()) {
  28.                     processes.get(i).captureDevices();
  29.                     remainBurstTime.set(i, remainBurstTime.get(i) - timeQuantum);
  30.                     totalTime += timeQuantum;
  31.                 }
  32.             }
  33.         }
  34.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement