Class SimActiveResource
- java.lang.Object
-
- de.uka.ipd.sdq.simulation.abstractsimengine.SimulationElement
-
- de.uka.ipd.sdq.simulation.abstractsimengine.AbstractSimEntityDelegator
-
- de.uka.ipd.sdq.scheduler.entities.SchedulerEntity
-
- de.uka.ipd.sdq.scheduler.resources.AbstractSimResource
-
- de.uka.ipd.sdq.scheduler.resources.active.AbstractActiveResource
-
- edu.kit.ipd.sdq.pcm.simulation.scheduler.exact.SimActiveResource
-
- All Implemented Interfaces:
de.uka.ipd.sdq.scheduler.IActiveResource,de.uka.ipd.sdq.simulation.abstractsimengine.IEntity
public class SimActiveResource extends de.uka.ipd.sdq.scheduler.resources.active.AbstractActiveResource
-
-
Field Summary
Fields Modifier and Type Field Description static org.apache.log4j.Loggerlogger
-
Constructor Summary
Constructors Constructor Description SimActiveResource(ExactSchedulingFactory exactSchedulingFactory, de.uka.ipd.sdq.scheduler.SchedulerModel model, ActiveResourceConfiguration resourceConf, de.uka.ipd.sdq.scheduler.resources.active.IResourceTableManager resourceTableManager)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddObserver(de.uka.ipd.sdq.scheduler.sensors.IActiveResourceStateSensor observer)protected voiddequeue(de.uka.ipd.sdq.scheduler.ISchedulableProcess process)voiddoProcessing(de.uka.ipd.sdq.scheduler.ISchedulableProcess sched_process, int resourceServiceID, double demand)protected voidenqueue(de.uka.ipd.sdq.scheduler.ISchedulableProcess process)IActiveProcessfindProcess(String processName)List<IResourceInstance>getInstanceList()intgetQueueLengthFor(de.uka.ipd.sdq.scheduler.entities.SchedulerEntity schedulerEntity, int coreId)doublegetRemainingDemand(de.uka.ipd.sdq.scheduler.ISchedulableProcess process)ISchedulergetScheduler()booleanisIdle(IResourceInstance instance)IActiveProcesslookUp(de.uka.ipd.sdq.scheduler.ISchedulableProcess process)voidnotifyTerminated(de.uka.ipd.sdq.scheduler.ISchedulableProcess simProcess)voidregisterProcess(de.uka.ipd.sdq.scheduler.ISchedulableProcess schedulableProcess)voidsetScheduler(IScheduler scheduler)voidstart()voidstop()voidunregisterProcess(IActiveProcess process)voidupdateDemand(de.uka.ipd.sdq.scheduler.ISchedulableProcess process, double demand)-
Methods inherited from class de.uka.ipd.sdq.scheduler.resources.active.AbstractActiveResource
doProcessing, fireDemandCompleted, fireStateChange, process, removeObserver
-
Methods inherited from class de.uka.ipd.sdq.scheduler.resources.AbstractSimResource
equals, getCapacity, getId, getName, hashCode, toString
-
Methods inherited from class de.uka.ipd.sdq.simulation.abstractsimengine.AbstractSimEntityDelegator
getEncapsulatedEntity, isScheduled, reschedule
-
-
-
-
Constructor Detail
-
SimActiveResource
public SimActiveResource(ExactSchedulingFactory exactSchedulingFactory, de.uka.ipd.sdq.scheduler.SchedulerModel model, ActiveResourceConfiguration resourceConf, de.uka.ipd.sdq.scheduler.resources.active.IResourceTableManager resourceTableManager)
-
-
Method Detail
-
getScheduler
public IScheduler getScheduler()
-
getInstanceList
public List<IResourceInstance> getInstanceList()
-
lookUp
public IActiveProcess lookUp(de.uka.ipd.sdq.scheduler.ISchedulableProcess process)
-
doProcessing
public void doProcessing(de.uka.ipd.sdq.scheduler.ISchedulableProcess sched_process, int resourceServiceID, double demand)- Specified by:
doProcessingin classde.uka.ipd.sdq.scheduler.resources.active.AbstractActiveResource
-
start
public void start()
-
isIdle
public boolean isIdle(IResourceInstance instance)
-
setScheduler
public void setScheduler(IScheduler scheduler)
-
dequeue
protected void dequeue(de.uka.ipd.sdq.scheduler.ISchedulableProcess process)
- Specified by:
dequeuein classde.uka.ipd.sdq.scheduler.resources.active.AbstractActiveResource
-
enqueue
protected void enqueue(de.uka.ipd.sdq.scheduler.ISchedulableProcess process)
- Specified by:
enqueuein classde.uka.ipd.sdq.scheduler.resources.active.AbstractActiveResource
-
stop
public void stop()
-
getRemainingDemand
public double getRemainingDemand(de.uka.ipd.sdq.scheduler.ISchedulableProcess process)
-
updateDemand
public void updateDemand(de.uka.ipd.sdq.scheduler.ISchedulableProcess process, double demand)
-
registerProcess
public void registerProcess(de.uka.ipd.sdq.scheduler.ISchedulableProcess schedulableProcess)
-
unregisterProcess
public void unregisterProcess(IActiveProcess process)
-
addObserver
public void addObserver(de.uka.ipd.sdq.scheduler.sensors.IActiveResourceStateSensor observer)
- Specified by:
addObserverin interfacede.uka.ipd.sdq.scheduler.IActiveResource- Overrides:
addObserverin classde.uka.ipd.sdq.scheduler.resources.active.AbstractActiveResource
-
findProcess
public IActiveProcess findProcess(String processName)
-
notifyTerminated
public void notifyTerminated(de.uka.ipd.sdq.scheduler.ISchedulableProcess simProcess)
- Specified by:
notifyTerminatedin interfacede.uka.ipd.sdq.scheduler.IActiveResource- Overrides:
notifyTerminatedin classde.uka.ipd.sdq.scheduler.resources.active.AbstractActiveResource
-
getQueueLengthFor
public int getQueueLengthFor(de.uka.ipd.sdq.scheduler.entities.SchedulerEntity schedulerEntity, int coreId)
-
-