package schedframe.scheduling.plugin.estimation; import java.util.Map; import dcworms.schedframe.scheduling.ExecTask; import schedframe.Plugin; import schedframe.events.scheduling.SchedulingEvent; import schedframe.resources.units.ResourceUnit; import schedframe.resources.units.ResourceUnitName; /** * This interface is responsible for estimation of task execution time. It * provides all necessary information to compute execution time. In general, the * major method allow to develop different approaches and strategies of * execution time computation. Ratings of processors, available memory, length * of task (number of CPU instructions) and task requirements are used to * specify duration of the task. The interface method returns an estimated * execution time of the task, which is then applied to simulation. * * @author Marcin Krystek * */ public interface ExecutionTimeEstimationPlugin extends Plugin { /** * * @param allocatedResources resource units allocated for task execution * @param task which will be executed * @param remainingLength * @return estimated execution time of a task of specified length */ public double execTimeEstimation(SchedulingEvent event, ExecTask task, Map allocatedResources, double completionPercentage); }