Class NetworkCloudlet

All Implemented Interfaces:
java.lang.Comparable<Cloudlet>, Cloudlet, ChangeableId, CustomerEntity, Delayable, Identifiable, UniquelyIdentifiable

public class NetworkCloudlet
extends CloudletSimple
NetworkCloudlet class extends Cloudlet to support simulation of complex applications. Each NetworkCloudlet represents a task of the application. Each task consists of several tasks.

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.
  • 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 out CloudletAbstract.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 cloudlet
      length - the length or size (in MI) of this cloudlet to be executed in a VM (check out CloudletAbstract.setLength(long))
      pesNumber - the pes number
  • Method Details

    • getNumberOfTasks

      public double getNumberOfTasks()
    • getTasks

      public java.util.List<CloudletTask> 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

      public NetworkCloudlet setMemory​(long memory)
      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

      public java.util.Optional<CloudletTask> getCurrentTask()
      Gets an Optional containing the current task or an Optional.empty().
      Returns:
    • isFinished

      public boolean isFinished()
      Description copied from interface: Cloudlet
      Checks whether this Cloudlet has finished executing or not.
      Specified by:
      isFinished in interface Cloudlet
      Overrides:
      isFinished in class CloudletAbstract
      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 the DatacenterBroker.

      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 interface Cloudlet
      Overrides:
      getLength in class CloudletAbstract
      Returns:
      the length sum of all CloudletExecutionTask's
      See Also:
      Cloudlet.getTotalLength(), Cloudlet.getNumberOfPes()
    • addTask

      public NetworkCloudlet addTask​(CloudletTask task)
      Adds a task to the task list and links the task to the NetworkCloudlet.
      Parameters:
      task - Task to be added
      Returns:
      the NetworkCloudlet instance