public static void FIFO() {
    for (int timer = 0; timer >= 0; timer++) {
      for (int i = 0; i < processes.length; i++) {
        if (waitingQueue[0] == null && (i + 1) == processes.length && processes == null) {
          System.out.println("Out of processes, end of simulation.");
          return;
        }
        if ((waitingQueue[0] == null)
            && (i + 1) == processes.length
            && (runningProcess == 0)
            && i == processes.length) {

          System.out.println("No processes to run at time " + timer);
        }
        if ((timer == processes[i].getStartTime())
            && (i + 1) == processes.length
            && (runningProcess == 0)) {
          runningProcess = 1;
          currentProcess = processes[i];

          System.out.println(
              "Running process " + currentProcess.getProcessNumber() + " at time " + timer);
        }
        if (timer == processes[i].getStartTime()
            && (i + 1) == processes.length
            && runningProcess == 1) {
          sendToQueue(processes[i]);
          System.out.println(
              "Process running: process "
                  + waitingQueue[0].getProcessNumber()
                  + " is waiting at time "
                  + timer);
          addWaitingTime();
        }

        if (currentProcess != null
            && (i + 1) == processes.length
            && timer == (currentProcess.getStartTime() + currentProcess.getRunTime())) {
          System.out.println("Process " + currentProcess.getProcessNumber() + " finished");
          runningProcess = 0;
        }
      }
    }
  }