Introduction to CloudSim Package

Post date: Apr 4, 2014 2:25:22 PM

The update version of this article is now available on following with title


The CloudSim Project is structured as java custom packages,where each package will contain the correlated classes in it. This project has in twelve packages as follows:

  1. org.cloudbus.cloudsim: This package contains classes that once instantiated will behave like some component in the system or support a specific component of the system for producing its relevant behavior during the simulation process. This package can be broadly categorized into two sections:
    • Simulating Components Classes: These are the set of classes that imitates a particular part of cloud setup. These are the classes that come under this category: Cloudlet, datacenter, datacenterbroker,host,storage,hardrivestorage, SANstorage,PE,datacloudTags & VM.
    • Policy Classes: These are the set of classes that imitate the policy behavior of a cloud component. Following are the classes that comes under this category: VMAllocationPolicy, CloudLetSchedulingPolicy, VMSchedulingPolicy,UtilizationModel and each of these class has there variants implemented in this package.
  2. org.cloudbus.cloudsim.core: This package contains the main classes of this project and are directly responsible for initiating(,, starting(, maintaining(,,, and and end the simulation process( This package contains a class '' this class contains all the event identifiers that are been implemented in datacenter and datacenterbroker class.
  3. org.cloudbus.cloudsim.core.predicates: This package classes are responsible for selecting matching events from deferredqueue class object during the simulation process for executing the event on specific entity.
  4. org.cloudbus.cloudsim.distributions: This package contain classes that have predefined network traffic distribution methods implemented in them. Classes defined here are: ContinuousDistribution,ExponentialDistribution etc
  5. org.cloudbus.cloudsim.lists: This package contain classes implementing predefined operations related to component list during simulation. Lists classes specified in this package are: CloudLetList, HostList, PeList, ResCloudLetList and VMList.
  6. This package hold the classes that produce behavior related to network packet routing.
  7. This package contain classes to produce a simulation behavior for geographically distributed data centers of cloud service providers.
  8. org.cloudbus.cloudsim.power / org.cloudbus.cloudsim.power.lists/ org.cloudbus.cloudsim.power.models : In these packages the org.cloudbus.cloudsim package classes are extended to produce behavior for power aware components. These packages cab be used to implement green computing related work.
  9. org.cloudbus.cloudsim.provisioners: Classes in this package contains policies related to allocation of Bandwidth, Processing elements and RAM. Default policy implemented here is 'Best effort allocation policy'.
  10. org.cloudbus.cloudsim.util: Classes in this package provide the basic utility operations related to perform some math operations related to cloud computing services or some calculation of execution time during the simulation process.

In following video we have looked into these packages and discussed about few important classes and their role in simulation process:

NOTE: In case your are not able to view video on this page Click Here.

For Preparing this video following reference were taken:

Cloudsim Code link:

Reference link to study material: