Class NetworkCloudlet
- All Implemented Interfaces:
java.lang.Comparable<Cloudlet>
,Cloudlet
,ChangeableId
,CustomerEntity
,Delayable
,Identifiable
,UniquelyIdentifiable
public class NetworkCloudlet extends CloudletSimple
Please refer to following publication for more details:
- Since:
- CloudSim Toolkit 1.0
- Author:
- Saurabh Kumar Garg, Manoel Campos da Silva Filho
- To do something:
- Check how to implement the NULL pattern for this class.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.cloudbus.cloudsim.cloudlets.Cloudlet
Cloudlet.Status
-
Field Summary
-
Constructor Summary
Constructors Constructor Description NetworkCloudlet(int id, long length, int pesNumber)
Creates a NetworkCloudlet with no priority and file size and output size equal to 1.NetworkCloudlet(long length, int pesNumber)
Creates a NetworkCloudlet with no priority and file size and output size equal to 1. -
Method Summary
Modifier and Type Method Description NetworkCloudlet
addTask(CloudletTask task)
Adds a task to thetask list
and links the task to the NetworkCloudlet.java.util.Optional<CloudletTask>
getCurrentTask()
Gets anOptional
containing the current task or anOptional.empty()
.long
getLength()
Gets the execution length of this Cloudlet (in Million Instructions (MI)) that will be executed in each defined PE.long
getMemory()
Gets the Cloudlet's RAM memory.double
getNumberOfTasks()
java.util.List<CloudletTask>
getTasks()
boolean
isFinished()
Checks whether this Cloudlet has finished executing or not.boolean
isTasksStarted()
Checks if the some Cloudlet Task has started yet.NetworkCloudlet
setMemory(long memory)
Sets the Cloudlet's RAM memory.boolean
startNextTaskIfCurrentIsFinished(double nextTaskStartTime)
Change the current task to the next one in order to start executing it, if the current task is finished.Methods inherited from class org.cloudbus.cloudsim.cloudlets.CloudletAbstract
absLength, addFinishedLengthSoFar, addOnFinishListener, addOnStartListener, addOnUpdateProcessingListener, addRequiredFile, addRequiredFiles, assignToDatacenter, deleteRequiredFile, equals, getAccumulatedBwCost, getActualCpuTime, getActualCpuTime, getArrivalTime, getCostPerBw, getCostPerSec, getCostPerSec, getExecStartTime, getFileSize, getFinishedLengthSoFar, getFinishedLengthSoFar, getFinishTime, getJobId, getLastDatacenterArrivalTime, getLastExecutedDatacenterIdx, getNetServiceLevel, getNumberOfPes, getOutputSize, getPriority, getRequiredFiles, getStatus, getSubmissionDelay, getTotalCost, getTotalLength, getUtilizationModel, getUtilizationModelBw, getUtilizationModelCpu, getUtilizationModelRam, getUtilizationOfBw, getUtilizationOfBw, getUtilizationOfCpu, getUtilizationOfCpu, getUtilizationOfRam, getUtilizationOfRam, getVm, getWaitingTime, getWallClockTime, isBoundToVm, isReturnedToBroker, notifyOnUpdateProcessingListeners, registerArrivalInDatacenter, removeOnFinishListener, removeOnStartListener, removeOnUpdateProcessingListener, requiresFiles, reset, setAccumulatedBwCost, setCostPerBw, setExecStartTime, setFileSize, setFinishTime, setJobId, setLastExecutedDatacenterIdx, setLength, setNetServiceLevel, setNumberOfPes, setOutputSize, setPriority, setRequiredFiles, setSizes, setStatus, setSubmissionDelay, setUtilizationModel, setUtilizationModelBw, setUtilizationModelCpu, setUtilizationModelRam, setVm, setWallClockTime
Methods inherited from class org.cloudbus.cloudsim.core.CustomerEntityAbstract
getBroker, getId, getLastTriedDatacenter, getSimulation, getUid, hashCode, setBroker, setId, setLastTriedDatacenter
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.cloudbus.cloudsim.core.CustomerEntity
getLastTriedDatacenter, getSimulation, setLastTriedDatacenter
-
Constructor Details
-
NetworkCloudlet
public NetworkCloudlet(long length, int pesNumber)Creates a NetworkCloudlet with no priority and file size and output size equal to 1.- Parameters:
length
- the length or size (in MI) of this cloudlet to be executed in a VM (check outCloudletAbstract.setLength(long)
)pesNumber
- the pes number
-
NetworkCloudlet
public NetworkCloudlet(int id, long length, int pesNumber)Creates a NetworkCloudlet with no priority and file size and output size equal to 1.- Parameters:
id
- the unique ID of this cloudletlength
- the length or size (in MI) of this cloudlet to be executed in a VM (check outCloudletAbstract.setLength(long)
)pesNumber
- the pes number
-
-
Method Details
-
getNumberOfTasks
public double getNumberOfTasks() -
getTasks
- Returns:
- a read-only list of cloudlet's tasks.
-
getMemory
public long getMemory()Gets the Cloudlet's RAM memory.- To do something:
- Required, allocated, used memory? It doesn't appear to be used.
-
setMemory
Sets the Cloudlet's RAM memory.- Parameters:
memory
- amount of RAM to set- To do something:
- Cloudlet has the
CloudletAbstract.getUtilizationModelRam()
that defines how RAM is used. This way, this attribute doesn't make sense since usage of RAM is dynamic. The attribute would be used to know what is the maximum memory the cloudlet can use, but that will be the maximum VM RAM capacity or a different value defined by a UtilizationModel.
-
isTasksStarted
public boolean isTasksStarted()Checks if the some Cloudlet Task has started yet.- Returns:
- true if some task has started, false otherwise
-
startNextTaskIfCurrentIsFinished
public boolean startNextTaskIfCurrentIsFinished(double nextTaskStartTime)Change the current task to the next one in order to start executing it, if the current task is finished.- Parameters:
nextTaskStartTime
- the time that the next task will start- Returns:
- true if the current task finished and the next one was started, false otherwise
-
getCurrentTask
Gets anOptional
containing the current task or anOptional.empty()
.- Returns:
-
isFinished
public boolean isFinished()Description copied from interface:Cloudlet
Checks whether this Cloudlet has finished executing or not.- Specified by:
isFinished
in interfaceCloudlet
- Overrides:
isFinished
in classCloudletAbstract
- Returns:
- true if this Cloudlet has finished execution, false otherwise
-
getLength
public long getLength()Gets the execution length of this Cloudlet (in Million Instructions (MI)) that will be executed in each defined PE.In case the length is a negative value, it means the Cloudlet doesn't have a defined length, this way, it keeps running until a
CloudSimTags.CLOUDLET_FINISH
message is sent to theDatacenterBroker
.According to this length and the power of the VM processor (in Million Instruction Per Second - MIPS) where the cloudlet will be run, the cloudlet will take a given time to finish processing. For instance, for a cloudlet of 10000 MI running on a processor of 2000 MIPS, the cloudlet will spend 5 seconds using the processor in order to be completed (that may be uninterrupted or not, depending on the scheduling policy).
The length of a NetworkCloudlet is the length sum of all its
CloudletExecutionTask
's.- Specified by:
getLength
in interfaceCloudlet
- Overrides:
getLength
in classCloudletAbstract
- Returns:
- the length sum of all
CloudletExecutionTask
's - See Also:
Cloudlet.getTotalLength()
,Cloudlet.getNumberOfPes()
-
addTask
Adds a task to thetask list
and links the task to the NetworkCloudlet.- Parameters:
task
- Task to be added- Returns:
- the NetworkCloudlet instance
-