DynamicForkJoin.java 1.07 KB
Newer Older
1 2
package mvd.jester.simulator;

3

4
import mvd.jester.model.SystemSetup;
5
import mvd.jester.model.SynchronousTask;
6
import mvd.jester.simulator.internals.dynamicforkjoin.TaskContext;
7 8 9 10

/**
 * SchmidMottok
 */
11
public class DynamicForkJoin extends AbstractSimulator {
12

13
    public DynamicForkJoin(SystemSetup<SynchronousTask> systemSetup) {
14 15 16
        super(systemSetup);
    }

17

18
    @Override
19
    protected boolean releaseTasks(long timeStep) {
20
        for (SynchronousTask t : systemSetup.getTasks()) {
21
            if (timeStep % t.getPeriod() == 0) {
22
                TaskContext tc = new TaskContext(t, systemSetup.getNumberOfProcessors(), timeStep);
23
                if (!readyTasks.add(tc)) {
24 25
                    EventPrinter
                            .print("Time " + timeStep + ": Task " + tc + " could not be released!");
26 27
                    return false;
                }
28
                EventPrinter.print("Time " + timeStep + ": Task " + tc + " released!");
29 30 31
            }
        }
        return true;
32 33
    }

34

35 36 37 38 39
    @Override
    public String getName() {
        return "SchmidMottok";
    }
}