Class ScheduledResource

java.lang.Object
de.uka.ipd.sdq.simulation.abstractsimengine.SimulationElement
de.uka.ipd.sdq.simulation.abstractsimengine.AbstractSimEntityDelegator
All Implemented Interfaces:
de.uka.ipd.sdq.scheduler.sensors.IActiveResourceStateSensor, IResourceDemandModifiable, de.uka.ipd.sdq.simulation.abstractsimengine.IEntity
Direct Known Subclasses:
HDDResource

public class ScheduledResource extends AbstractScheduledResource
  • Field Details

    • canBeUnavailable

      protected final boolean canBeUnavailable
  • Constructor Details

    • ScheduledResource

      public ScheduledResource(org.palladiosimulator.pcm.resourceenvironment.ProcessingResourceSpecification activeResource, SimuComModel myModel, String resourceContainerID, String schedulingStrategyID)
  • Method Details

    • createActiveResource

      protected de.uka.ipd.sdq.scheduler.IActiveResource createActiveResource(SimuComModel myModel)
      Description copied from class: AbstractScheduledResource
      Subclasses are responsible for creating the IActiveResource to use internally. Is called in the constructor.
      Specified by:
      createActiveResource in class AbstractScheduledResource
      Returns:
      the IActiveResource resource to use as determined by the subclasses.
    • calculateDemand

      protected double calculateDemand(double demand)
      Description copied from class: AbstractScheduledResource
      Template method. Implementers have to use the given demand and return the time span needed to process the demand on this resource.
      Specified by:
      calculateDemand in class AbstractScheduledResource
      Parameters:
      demand - The demand issued to this resource in units understood by the resource
      Returns:
      The service time, given in seconds
    • activateResource

      public void activateResource()
      Description copied from class: AbstractScheduledResource
      Called by the framework to inform that the resource should start its lifecycle
      Overrides:
      activateResource in class AbstractScheduledResource
    • getRemainingDemandForProcess

      public double getRemainingDemandForProcess(SimuComSimProcess thread)
      Specified by:
      getRemainingDemandForProcess in class AbstractScheduledResource
    • updateDemand

      public void updateDemand(SimuComSimProcess thread, double demand)
      Specified by:
      updateDemand in class AbstractScheduledResource
    • deactivateResource

      public void deactivateResource()
      Description copied from class: AbstractScheduledResource
      Called by the framework to inform the resource that the simulation has been stopped. Fires a IStateListener#stateChanged() event.
      Overrides:
      deactivateResource in class AbstractScheduledResource
    • getNextResourceId

      public static String getNextResourceId()
    • getScheduledResource

      public de.uka.ipd.sdq.scheduler.IActiveResource getScheduledResource()
      Specified by:
      getScheduledResource in class AbstractScheduledResource
    • setProcessingRate

      public void setProcessingRate(String newProcessingRate)
      Method to alter processing rate at runtime, e.g., to model changing parameters of cloud environments at runtime
      Parameters:
      newProcessingRate - The new processing rate of this resource
    • getActiveResource

      public org.palladiosimulator.pcm.resourceenvironment.ProcessingResourceSpecification getActiveResource()
    • getFailureTime

      public double getFailureTime()
      Returns the failure time for this resource (or -1.0 if the resource cannot fail).
      Returns:
      the failure time for the resource
    • getRepairTime

      public double getRepairTime()
      Returns the repair time for this resource (or -1.0 if the resource cannot fail).
      Returns:
      the repair time for the resource
    • update

      public void update(long state, int instanceId)
      Specified by:
      update in interface de.uka.ipd.sdq.scheduler.sensors.IActiveResourceStateSensor
      Overrides:
      update in class AbstractScheduledResource