Hello, i think it might be a probleme in the exchange between the scheduler and datacenter of networkcloudsim.
when a cloudlet is submitted by the broker, it is processed by the datacenter's method processCloudletSubmit. if the cloudlet hasn't finished execution yet, it is sent to the scheduler by the instruction
if the VM is not currently available to process the cloudlet, the value returned by the method cloudletSubmit of NetworkCloudletSpaceSharedScheduler must be > 0 so the datacenter cand process it again
if (estimatedFinishTime > 0.0 && !Double.isInfinite(estimatedFinishTime)) {
estimatedFinishTime += fileTransferTime;
send(getId(), estimatedFinishTime, CloudSimTags.VM_DATACENTER_EVENT);
}
The issue here is that the method cloudletSubmit returns 0.0 in case of there not enough pes and the cloudlet goes to the queue list
Hello, i think it might be a probleme in the exchange between the scheduler and datacenter of networkcloudsim.
when a cloudlet is submitted by the broker, it is processed by the datacenter's method processCloudletSubmit. if the cloudlet hasn't finished execution yet, it is sent to the scheduler by the instruction
double estimatedFinishTime = scheduler.cloudletSubmit(cl, fileTransferTime);
if the VM is not currently available to process the cloudlet, the value returned by the method cloudletSubmit of NetworkCloudletSpaceSharedScheduler must be > 0 so the datacenter cand process it again if (estimatedFinishTime > 0.0 && !Double.isInfinite(estimatedFinishTime)) { estimatedFinishTime += fileTransferTime; send(getId(), estimatedFinishTime, CloudSimTags.VM_DATACENTER_EVENT); }
The issue here is that the method cloudletSubmit returns 0.0 in case of there not enough pes and the cloudlet goes to the queue list
else { ResCloudlet rcl = new ResCloudlet(cloudlet); rcl.setCloudletStatus(Cloudlet.QUEUED); getCloudletWaitingList().add(rcl); return 0.0; }