1 package Analysis.Scheduling;
3 import java.util.Queue;
4 import java.util.Vector;
6 public class FIFORSchedule extends RuntimeSchedule {
7 static FIFORSchedule rschedule;
9 public static FIFORSchedule getFIFORSchedule() {
10 if(rschedule == null) {
11 rschedule = new FIFORSchedule();
16 public FIFORSchedule() {
17 super("FIFO Algorithm");
20 public TaskSimulator schedule(Vector<TaskSimulator> tasks) {
24 TaskSimulator next = null;
26 for(; i < tasks.size(); i++) {
27 next = tasks.elementAt(i);
28 int paraNum = next.getTd().numParameters();
29 Vector<Queue<ObjectSimulator>> pqueues = next.getParaQueues();
30 if((pqueues == null) || (pqueues.size() < paraNum)) {
34 for(; j < pqueues.size(); j++) {
35 Queue<ObjectSimulator> objs = pqueues.elementAt(j);
36 if((objs == null) || (objs.size() == 0)) {
40 if(j == pqueues.size()) {
46 if(i == tasks.size()) {