Source Code-Assign2
Source Code-Assign2
Code:
/*
* of Clouds
*/
package org.cloudbus.cloudsim.examples.network;
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.VmSchedulerSpaceShared;
import org.cloudbus.cloudsim.core.CloudSim;
import org.cloudbus.cloudsim.provisioners.BwProvisionerSimple;
import org.cloudbus.cloudsim.provisioners.PeProvisionerSimple;
import org.cloudbus.cloudsim.provisioners.RamProvisionerSimple;
/**
* topology on them.
*/
/**
* Creates main() to run this example
*/
Log.printLine("Starting NetworkExample3...");
try {
//VM description
int vmid = 0;
long bw = 1000;
Vm vm1 = new Vm(vmid, brokerId1, mips, pesNumber, ram, bw, size, vmm, new
CloudletSchedulerTimeShared());
Vm vm2 = new Vm(vmid, brokerId2, mips, pesNumber, ram, bw, size, vmm, new
CloudletSchedulerTimeShared());
Vm vm3 = new Vm(vmid, brokerId3, mips, pesNumber, ram, bw, size, vmm, new
CloudletSchedulerTimeShared());
//add the VMs to the vmlists
vmlist1.add(vm1);
vmlist2.add(vm2);
vmlist3.add(vm3);
broker1.submitVmList(vmlist1);
broker2.submitVmList(vmlist2);
broker3.submitVmList(vmlist3);
//Cloudlet properties
int id = 0;
cloudlet1.setUserId(brokerId1);
cloudlet2.setUserId(brokerId2);
Cloudlet cloudlet3 = new Cloudlet(id, length, pesNumber, fileSize, outputSize,
utilizationModel, utilizationModel, utilizationModel);
cloudlet3.setUserId(brokerId3);
//add the cloudlets to the lists: each cloudlet belongs to one user
cloudletList1.add(cloudlet1);
cloudletList2.add(cloudlet2);
cloudletList3.add(cloudlet3);
broker1.submitCloudletList(cloudletList1);
broker2.submitCloudletList(cloudletList2);
broker3.submitCloudletList(cloudletList3);
NetworkTopology.buildNetworkTopology("topology.brite");
int briteNode=0;
NetworkTopology.mapNode(datacenter0.getId(),briteNode);
briteNode=2;
NetworkTopology.mapNode(datacenter1.getId(),briteNode);
//Datacenter2 will correspond to BRITE node 3
briteNode=7;
NetworkTopology.mapNode(datacenter2.getId(),briteNode);
briteNode=3;
NetworkTopology.mapNode(broker1.getId(),briteNode);
briteNode=5;
NetworkTopology.mapNode(broker2.getId(),briteNode);
briteNode=9;
NetworkTopology.mapNode(broker3.getId(),briteNode);
CloudSim.startSimulation();
CloudSim.stopSimulation();
printCloudletList(newList1);
Log.print("=============> User "+brokerId2+" ");
printCloudletList(newList2);
printCloudletList(newList3);
Log.printLine("NetworkExample3 finished!");
catch (Exception e) {
e.printStackTrace();
// our machine
//4. Create Host with its id and list of PEs and add them to the list of machines
int hostId=0;
int bw = 10000;
//in this example, the VMAllocatonPolicy in use is SpaceShared. It means that only one
VM
//is allowed to run on each Pe. As each Host has only one Pe, only one VM can run on
each Host.
hostList.add(
new Host(
hostId,
new RamProvisionerSimple(ram),
new BwProvisionerSimple(bw),
storage,
peList,
new VmSchedulerSpaceShared(peList)
costPerStorage, costPerBw);
try {
} catch (Exception e) {
e.printStackTrace();
return datacenter;
//We strongly encourage users to develop their own broker policies, to submit vms and
cloudlets according
try {
} catch (Exception e) {
e.printStackTrace();
return null;
return broker;
/**
*/
Cloudlet cloudlet;
Log.printLine();
"Data center ID" + indent + "VM ID" + indent + "Time" + indent + "Start
Time" + indent + "Finish Time");
cloudlet = list.get(i);
Log.print(indent + cloudlet.getCloudletId() + indent + indent);
if (cloudlet.getCloudletStatus() == Cloudlet.SUCCESS){
Log.print("SUCCESS");
indent + indent +
dft.format(cloudlet.getActualCPUTime()) + indent + indent + dft.format(cloudlet.getExecStartTime())+