public Job nextStep(int simulationTime) { updateReadyQueue(simulationTime); if (simulationTime != 0 && currentJob.getRemainTime() != 0) { readyQueue.addJob(currentJob); } if (readyQueue.size() > 1) { readyQueue.OrderedByPriority(); } if (readyQueue.isEmpty()) { return null; } setCurrentJob(); return workInCPU(simulationTime); }
/** * Show queue content (every job details) improved version of toString method but used for * testing. * * @param list Queue to show it's content */ public void showQueue(int simulationTime) { if (mainList.isEmpty()) { System.out.println("Empty Queue"); return; } // if queue is empty System.out.println("number of jobs " + mainList.size()); System.out.println( "# " + " Arrive " + " Burst " + " Priority " + " Start " + " Wait " + " Remain " + " Finish " + " Turn " + " % "); for (int i = 0; i < mainList.size(); i++) // show every job data { Job temp = mainList.get(i); System.out.print( temp.jobNumber + " " + temp.arrivalTime + " " + temp.burst + " "); System.out.print( temp.priority + " " + temp.getStart() + " " + temp.getWaitTime(simulationTime) + " "); System.out.print( temp.getRemainTime() + " " + temp.getFinish() + " " + temp.getTurnaround(simulationTime) + " "); System.out.println(temp.getPercent()); } }
public boolean isFinished() { return (list.isEmpty() && readyQueue.isEmpty() && !busy && currentJob.getRemainTime() == 0); }