I have tested your code and I just gave it some modifications to provide effects according to your purposes. Take a look to the code below and give us your feedback if it execute how you expected.
package simulacaoUSP.duvidas.cloudsim;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import org.cloudbus.cloudsim.Cloudlet;
import org.cloudbus.cloudsim.CloudletSchedulerDynamicWorkload;
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.Storage;
import org.cloudbus.cloudsim.UtilizationModel;
import org.cloudbus.cloudsim.UtilizationModelStochastic;
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.core.SimEntity;
import org.cloudbus.cloudsim.core.SimEvent;
import org.cloudbus.cloudsim.provisioners.BwProvisionerSimple;
import org.cloudbus.cloudsim.provisioners.PeProvisionerSimple;
import org.cloudbus.cloudsim.provisioners.RamProvisionerSimple;
/**
*
* @author Mario Pardo
*/
public class AnjanTest {
//private static List<AnjanCloudlet> cloudletList;
//private static List<Vm> vmlist;
public static void main(String[] args) {
int num_user = 2;
Calendar calendar = Calendar.getInstance();
boolean trace_flag = false;
CloudSim.init(num_user, calendar, trace_flag);
Datacenter dc1 = createDatacenter("Datacenter_01", 2);
DatacenterBroker broker = (DatacenterBroker)createBroker("DCBroker");
broker.submitVmList(createVM(broker.getId(), 4, 1));
broker.submitCloudletList(createCloudlet(broker.getId(), 10, 1));
CloudSim.startSimulation();
List<AnjanCloudlet> newList = broker.getCloudletReceivedList();
CloudSim.stopSimulation();
printCloudletList(newList);
printCloudletPriorities(newList);
dc1.printDebts();
}
public static List<Vm> createVM(int userId, int vms, int idShift) {
//Creates a container to store VMs. This list is passed to the broker later
LinkedList<Vm> list = new LinkedList<Vm>();
//VM Parameters
long size = 10000; //image size (MB)
int ram = 512; //vm memory (MB)
int mips = 1000;
long bw = 1000;
int pesNumber = 1; //number of cpus
String vmm = "Xen"; //VMM name
//create VMs
Vm[] vm = new Vm[vms];
for (int i = 0; i < vms; i++) {
//vm[i] = new Vm(idShift + i, userId, mips, pesNumber, ram, bw, size, vmm, new SampleCloudletScheduler());
vm[i] = new Vm(idShift + i, userId, mips, pesNumber, ram, bw, size, vmm, new CloudletSchedulerDynamicWorkload(mips, pesNumber));
//vm[i] = new Vm(idShift + i, userId, mips, pesNumber, ram, bw, size, vmm, new CloudletSchedulerTimeShared());
list.add(vm[i]);
}
return list;
}
private static List<AnjanCloudlet> createCloudlet(int userId, int cloudlets, int idShift) {
// Creates a container to store Cloudlets
LinkedList<AnjanCloudlet> list = new LinkedList<AnjanCloudlet>();
//cloudlet parameters
long length = 100000;
long fileSize = 300;
long outputSize = 300;
int pesNumber = 1;
UtilizationModel utilizationModel = new UtilizationModelStochastic(1);
//UtilizationModel utilizationModel = new UtilizationModelFull();
int priority = 0;
Random rdn = new Random();
AnjanCloudlet[] cloudlet = new AnjanCloudlet[cloudlets];
for (int i = 0; i < cloudlets; i++) {
priority = rdn.nextInt(3)+1;
System.out.println("generated random priority number = "+ priority);
cloudlet[i] = new AnjanCloudlet(idShift + i, length, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
cloudlet[i].setUserId(userId);
cloudlet[i].setCloudlet_priority(priority);
cloudlet[i].setStartTime(CloudSim.clock()+100); //Just a test...
list.add(cloudlet[i]);
}
return list;
}
private static Datacenter createDatacenter(String name, int numberOfHosts) {
List<Host> hostList = new ArrayList<Host>();
List<Pe> peList1 = new ArrayList<Pe>();
int mips = 1000;
int hostId = 0;
int ram = 16384;
long storage = 1000000;
int bw = 10000;
peList1.add(new Pe(0, new PeProvisionerSimple(mips)));
peList1.add(new Pe(1, new PeProvisionerSimple(mips)));
peList1.add(new Pe(2, new PeProvisionerSimple(mips)));
peList1.add(new Pe(3, new PeProvisionerSimple(mips)));
peList1.add(new Pe(4, new PeProvisionerSimple(mips)));
for (int i = 0; i < numberOfHosts; i++) {
hostList.add(
new Host(
hostId,
new RamProvisionerSimple(ram),
new BwProvisionerSimple(bw),
storage,
peList1,
new VmSchedulerSpaceShared(peList1)));
hostId++;
}
String arch = "x86"; // system architecture
String os = "Linux"; // operating system
String vmm = "Xen";
double time_zone = 10.0; // time zone this resource located
double cost = 3.0; // the cost of using processing in this resource
double costPerMem = 0.05; // the cost of using memory in this resource
double costPerStorage = 0.1; // the cost of using storage in this resource
double costPerBw = 0.1; // the cost of using bw in this resource
LinkedList<Storage> storageList = new LinkedList<Storage>(); //we are not adding SAN devices by now
DatacenterCharacteristics characteristics = new DatacenterCharacteristics(
arch, os, vmm, hostList, time_zone, cost, costPerMem, costPerStorage, costPerBw);
Datacenter datacenter = null;
try {
datacenter = new Datacenter(name, characteristics, new VmAllocationPolicySimple(hostList), storageList, 0);
} catch (Exception e) {
e.printStackTrace();
}
return datacenter;
}
private static DatacenterBroker createBroker(String name) {
DatacenterBroker broker = null;
try {
broker = new DatacenterBroker(name);
} catch (Exception e) {
e.printStackTrace();
return null;
}
return broker;
}
/**
* Prints the Cloudlet objects
*
* @param list list of Cloudlets
*/
private static void printCloudletList(List<AnjanCloudlet> list) {
int size = list.size();
AnjanCloudlet cloudlet;
String indent = " ";
Log.printLine();
Log.printLine("========== OUTPUT ==========");