/* * Title: CloudSim Toolkit * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds * Licence: GPL - http://www.gnu.org/copyleft/gpl.html * * Copyright (c) 2009-2012, The University of Melbourne, Australia */ package org.cloudbus.cloudsim.network.datacenter; import java.util.ArrayList; import java.util.Map; import org.cloudbus.cloudsim.Cloudlet; import org.cloudbus.cloudsim.UtilizationModel; /** * NetworkCloudlet class extends Cloudlet to support simulation of complex applications. Each such * a network Cloudlet represents a task of the application. Each task consists of several stages. * * <br/>Please refer to following publication for more details:<br/> * <ul> * <li><a href="http://dx.doi.org/10.1109/UCC.2011.24">Saurabh Kumar Garg and Rajkumar Buyya, NetworkCloudSim: Modelling Parallel Applications in Cloud * Simulations, Proceedings of the 4th IEEE/ACM International Conference on Utility and Cloud * Computing (UCC 2011, IEEE CS Press, USA), Melbourne, Australia, December 5-7, 2011.</a> * </ul> * * @author Saurabh Kumar Garg * @since CloudSim Toolkit 1.0 * @todo Attributes should be private * @todo The different cloudlet classes should have a class hierarchy, by means * of a super class and/or interface. */ public class NetworkCloudlet extends Cloudlet implements Comparable<Object> { /** Time when cloudlet will be submitted. */ public double submittime; /** Time when cloudlet finishes execution. */ public double finishtime; /** Execution time for cloudlet. */ public double exetime; /** Number of cloudlet's stages . */ public double numStage; /** Current stage of cloudlet execution. */ public int currStagenum; /** Star time of the current stage. */ public double timetostartStage; /** Time spent in the current stage. */ public double timespentInStage; /** * @todo It doesn't appear to be used. */ public Map<Double, HostPacket> timeCommunicate; /** All stages which cloudlet execution. */ public ArrayList<TaskStage> stages; /** * Cloudlet's memory. * @todo Required, allocated, used memory? * It doesn't appear to be used. */ long memory; /** * Cloudlet's start time. */ public double starttime; public NetworkCloudlet( int cloudletId, long cloudletLength, int pesNumber, long cloudletFileSize, long cloudletOutputSize, long memory, UtilizationModel utilizationModelCpu, UtilizationModel utilizationModelRam, UtilizationModel utilizationModelBw) { super( cloudletId, cloudletLength, pesNumber, cloudletFileSize, cloudletOutputSize, utilizationModelCpu, utilizationModelRam, utilizationModelBw); currStagenum = -1; this.memory = memory; stages = new ArrayList<TaskStage>(); } @Override public int compareTo(Object arg0) { return 0; } public double getSubmittime() { return submittime; } }