public static void sendToQueue(Process process) { Process temp; for (int i = 0; i < waitingQueue.length; i++) { if ((waitingQueue[i] == null) || (waitingQueue[i].getRunTime() > process.getRunTime())) { temp = waitingQueue[i]; waitingQueue[i] = process; if (temp == null) { return; } else { sendToQueue(temp); } } } }
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; } } } }