public class ScheduledResource extends AbstractScheduledResource
Modifier and Type | Field and Description |
---|---|
protected boolean |
canBeUnavailable |
Constructor and Description |
---|
ScheduledResource(org.palladiosimulator.pcm.resourceenvironment.ProcessingResourceSpecification activeResource,
SimuComModel myModel,
java.lang.String resourceContainerID,
java.lang.String schedulingStrategyID) |
Modifier and Type | Method and Description |
---|---|
void |
activateResource()
Called by the framework to inform that the resource should start its lifecycle
|
protected double |
calculateDemand(double demand)
Template method.
|
void |
consumeResource(SimuComSimProcess process,
int resourceServiceID,
java.util.Map<java.lang.String,java.io.Serializable> parameterMap,
double abstractDemand)
Called by client of this resource to make the resource simulate resource processing.
|
protected de.uka.ipd.sdq.scheduler.IActiveResource |
createActiveResource(SimuComModel myModel)
Subclasses are responsible for creating the
IActiveResource to use internally. |
void |
deactivateResource()
Called by the framework to inform the resource that the simulation has been stopped.
|
org.palladiosimulator.pcm.resourceenvironment.ProcessingResourceSpecification |
getActiveResource() |
double |
getFailureTime()
Returns the failure time for this resource (or -1.0 if the resource cannot fail).
|
static java.lang.String |
getNextResourceId() |
double |
getRemainingDemandForProcess(SimuComSimProcess thread) |
double |
getRepairTime()
Returns the repair time for this resource (or -1.0 if the resource cannot fail).
|
de.uka.ipd.sdq.scheduler.IActiveResource |
getScheduledResource() |
void |
setProcessingRate(java.lang.String newProcessingRate)
Method to alter processing rate at runtime, e.g., to model changing parameters of cloud
environments at runtime
|
void |
update(long state,
int instanceId) |
void |
updateDemand(SimuComSimProcess thread,
double demand) |
addDemandListener, addOverallUtilizationListener, addStateListener, assertAvailability, demandCompleted, fireDemand, fireOverallUtilization, fireStateEvent, getDescription, getNumberOfInstances, getQueueLength, getResourceTypeId, getSchedulingStrategyID, getUnderlyingResource, isAvailable, isRequiredByContainer, setAvailable
getModel
public ScheduledResource(org.palladiosimulator.pcm.resourceenvironment.ProcessingResourceSpecification activeResource, SimuComModel myModel, java.lang.String resourceContainerID, java.lang.String schedulingStrategyID)
protected de.uka.ipd.sdq.scheduler.IActiveResource createActiveResource(SimuComModel myModel)
AbstractScheduledResource
IActiveResource
to use internally. Is
called in the constructor.createActiveResource
in class AbstractScheduledResource
IActiveResource
resource to use as determined by the subclasses.protected double calculateDemand(double demand)
AbstractScheduledResource
calculateDemand
in class AbstractScheduledResource
demand
- The demand issued to this resource in units understood by the resourcepublic void activateResource()
AbstractScheduledResource
activateResource
in class AbstractScheduledResource
public void consumeResource(SimuComSimProcess process, int resourceServiceID, java.util.Map<java.lang.String,java.io.Serializable> parameterMap, double abstractDemand)
AbstractScheduledResource
consumeResource
in class AbstractScheduledResource
process
- The thread or job requesting the processing of its demandresourceServiceID
- The id of the resource service to be called for resource consumptionparameterMap
- Additional parameters which can be used by the resource. Map can be empty.abstractDemand
- The resource demand the client wishes to be processed by the resourcepublic double getRemainingDemandForProcess(SimuComSimProcess thread)
getRemainingDemandForProcess
in class AbstractScheduledResource
public void updateDemand(SimuComSimProcess thread, double demand)
updateDemand
in class AbstractScheduledResource
public void deactivateResource()
AbstractScheduledResource
IStateListener#stateChanged()
event.deactivateResource
in class AbstractScheduledResource
public static java.lang.String getNextResourceId()
public de.uka.ipd.sdq.scheduler.IActiveResource getScheduledResource()
getScheduledResource
in class AbstractScheduledResource
public void setProcessingRate(java.lang.String newProcessingRate)
newProcessingRate
- The new processing rate of this resourcepublic org.palladiosimulator.pcm.resourceenvironment.ProcessingResourceSpecification getActiveResource()
public double getFailureTime()
public double getRepairTime()
public void update(long state, int instanceId)
update
in interface de.uka.ipd.sdq.scheduler.sensors.IActiveResourceStateSensor
update
in class AbstractScheduledResource