Ranif Cs435
Ranif Cs435
FALL 2024
CODE OUTPUT
package org.cloudbus.cloudsim.examples;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;
import org.cloudbus.cloudsim.Cloudlet;
import org.cloudbus.cloudsim.CloudletSchedulerTimeShared;
import org.cloudbus.cloudsim.Datacenter;
import org.cloudbus.cloudsim.DatacenterBroker;
import org.cloudbus.cloudsim.DatacenterCharacteristics;
import org.cloudbus.cloudsim.Host;
import org.cloudbus.cloudsim.Log;
import org.cloudbus.cloudsim.NetworkTopology;
import org.cloudbus.cloudsim.Pe;
import org.cloudbus.cloudsim.Storage;
import org.cloudbus.cloudsim.UtilizationModel;
import org.cloudbus.cloudsim.UtilizationModelFull;
import org.cloudbus.cloudsim.Vm;
import org.cloudbus.cloudsim.VmAllocationPolicySimple;
import org.cloudbus.cloudsim.VmSchedulerTimeShared;
import org.cloudbus.cloudsim.core.CloudSim;
import org.cloudbus.cloudsim.provisioners.BwProvisionerSimple;
import org.cloudbus.cloudsim.provisioners.PeProvisionerSimple;
import org.cloudbus.cloudsim.provisioners.RamProvisionerSimple;
/**
* A simple example showing how to create
* two datacenters with one host and a
* network topology each and run two cloudlets
* on them.
*/
public class CloudSimExample2 {
/**
* Creates main() to run this example
*/
public static void main(String[] args) {
Log.printLine("Starting NetworkExample2...");
try {
// First step: Initialize the CloudSim package. It should be
called
// before creating any entities.
int num_user = 1; // number of cloud users
Calendar calendar = Calendar.getInstance();
boolean trace_flag = false; // mean trace events
//VM description
int vmid = 1;
int mips = 150;
long size = 10000; //image size (MB)
int ram = 512; //vm memory (MB)
long bw = 1000;
int pesNumber = 1; //number of cpus
String vmm = "Xen"; //VMM name
//Cloudlet properties
int id = 0;
long length = 250;
long fileSize = 300;
long outputSize = 300;
UtilizationModel utilizationModel = new
UtilizationModelFull();
id++;
Cloudlet cloudlet2 = new Cloudlet(id, 150, pesNumber,
fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
cloudlet2.setUserId(brokerId);
id++;
Cloudlet cloudlet3 = new Cloudlet(id, 350, pesNumber,
fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
cloudlet3.setUserId(brokerId);
id++;
Cloudlet cloudlet4 = new Cloudlet(id, 180, pesNumber,
fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
cloudlet4.setUserId(brokerId);
id++;
Cloudlet cloudlet5 = new Cloudlet(id, 200, pesNumber,
fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
cloudlet5.setUserId(brokerId);
broker.bindCloudletToVm(cloudlet1.getCloudletId(),vm2.getId());
broker.bindCloudletToVm(cloudlet2.getCloudletId(),vm1.getId());
broker.bindCloudletToVm(cloudlet3.getCloudletId(),vm2.getId());
broker.bindCloudletToVm(cloudlet4.getCloudletId(),vm1.getId());
broker.bindCloudletToVm(cloudlet5.getCloudletId(),vm2.getId());
broker.bindCloudletToVm(cloudlet6.getCloudletId(),vm1.getId());
CloudSim.stopSimulation();
printCloudletList(newList);
calculateMetrics(newList);
Log.printLine("NetworkExample2 finished!");
}
catch (Exception e) {
e.printStackTrace();
Log.printLine("The simulation has been terminated due to an
unexpected error");
}
}
//4. Create Host with its id and list of PEs and add them to the
list of machines
int hostId=0;
int ram = 2048; //host memory (MB)
long storage = 1000000; //host storage
int bw = 10000;
return datacenter;
}
/**
* Prints the Cloudlet objects
* @param list list of Cloudlets
*/
private static void printCloudletList(List<Cloudlet> list) {
int size = list.size();
Cloudlet cloudlet;
if (cloudlet.getCloudletStatus() == Cloudlet.SUCCESS){
Log.print("SUCCESS");
double finishTimeVM1 = 0;
double finishTimeVM2 = 0;
if (cloudlet.getVmId()==1){
}
else if (cloudlet.getVmId()==2) {