/** * Gets total CPU utilization percentage of all clouddlets running on this VM at the given time * * @param time the time * @return total utilization percentage */ public double getTotalUtilizationOfCpu(double time) { return getCloudletScheduler().getTotalUtilizationOfCpu(time); }
/** * Updates the processing of cloudlets running on this VM. * * @param currentTime current simulation time * @param mipsShare list with MIPS share of each Pe available to the scheduler * @return time predicted completion time of the earliest finishing cloudlet, or 0 if there is no * next events * @pre currentTime >= 0 * @post $none */ public double updateVmProcessing(double currentTime, List<Double> mipsShare) { if (mipsShare != null) { return getCloudletScheduler().updateVmProcessing(currentTime, mipsShare); } return 0.0; }
/** * Receives packets and forward them to the corresponding VM. */ private void recvpackets() { for (NetworkPacket hs : packetrecieved) { hs.pkt.recievetime = CloudSim.clock(); // insert the packet in recievedlist of VM Vm vm = VmList.getById(getVmList(), hs.pkt.reciever); List<HostPacket> pktlist = ((NetworkCloudletSpaceSharedScheduler) vm.getCloudletScheduler()).pktrecv .get(hs.pkt.sender); if (pktlist == null) { pktlist = new ArrayList<HostPacket>(); ((NetworkCloudletSpaceSharedScheduler) vm.getCloudletScheduler()).pktrecv.put( hs.pkt.sender, pktlist); } pktlist.add(hs.pkt); } packetrecieved.clear(); }
/** * Gets the current requested mips. * * @return the current requested mips */ public List<Double> getCurrentRequestedMips() { List<Double> currentRequestedMips = getCloudletScheduler().getCurrentRequestedMips(); if (isBeingInstantiated()) { currentRequestedMips = new ArrayList<Double>(); for (int i = 0; i < getNumberOfPes(); i++) { currentRequestedMips.add(getMips()); } } return currentRequestedMips; }
/** * Verifies if some cloudlet inside this Datacenter already finished. * If yes, send it to the User/Broker * * @pre $none * @post $none */ protected void checkCloudletCompletion() { List<? extends Host> list = getVmAllocationPolicy().getHostList(); for (int i = 0; i < list.size(); i++) { Host host = list.get(i); for (Vm vm : host.getVmList()) { while (vm.getCloudletScheduler().isFinishedCloudlets()) { Cloudlet cl = vm.getCloudletScheduler().getNextFinishedCloudlet(); if (cl != null) { sendNow(cl.getUserId(), CloudSimTags.CLOUDLET_RETURN, cl); } } } } }
/** * Gets the current requested bw. * * @return the current requested bw */ public long getCurrentRequestedBw() { if (isBeingInstantiated()) { return getBw(); } return (long) (getCloudletScheduler().getCurrentRequestedUtilizationOfBw() * getBw()); }
/** * Gets the current requested ram. * * @return the current requested ram */ public int getCurrentRequestedRam() { if (isBeingInstantiated()) { return getRam(); } return (int) (getCloudletScheduler().getCurrentRequestedUtilizationOfRam() * getRam()); }
for (Vm vm : super.getVmList()) { for (Entry<Integer, List<HostPacket>> es : ((NetworkCloudletSpaceSharedScheduler) vm .getCloudletScheduler()).pkttosend.entrySet()) { List<HostPacket> pktlist = es.getValue(); for (HostPacket pkt : pktlist) { List<HostPacket> pktlist = ((NetworkCloudletSpaceSharedScheduler) vm.getCloudletScheduler()).pktrecv .get(hs.pkt.sender); if (pktlist == null) { pktlist = new ArrayList<HostPacket>(); ((NetworkCloudletSpaceSharedScheduler) vm.getCloudletScheduler()).pktrecv.put( hs.pkt.sender, pktlist);
/** * Processes a Cloudlet cancel request. * * @param cloudletId ID of the cloudlet to be canceled * @param userId ID of the cloudlet's owner * @param vmId the id of the VM where the cloudlet has to be canceled * * @pre $none * @post $none */ protected void processCloudletCancel(int cloudletId, int userId, int vmId) { Cloudlet cl = getVmAllocationPolicy().getHost(vmId, userId).getVm(vmId,userId) .getCloudletScheduler().cloudletCancel(cloudletId); sendNow(userId, CloudSimTags.CLOUDLET_CANCEL, cl); }
/** * Processes a Cloudlet pause request. * * @param cloudletId ID of the cloudlet to be paused * @param userId ID of the cloudlet's owner * @param ack indicates if the event's sender expects to receive * an acknowledge message when the event finishes to be processed * @param vmId the id of the VM where the cloudlet has to be paused * * @pre $none * @post $none */ protected void processCloudletPause(int cloudletId, int userId, int vmId, boolean ack) { boolean status = getVmAllocationPolicy().getHost(vmId, userId).getVm(vmId,userId) .getCloudletScheduler().cloudletPause(cloudletId); if (ack) { int[] data = new int[3]; data[0] = getId(); data[1] = cloudletId; if (status) { data[2] = CloudSimTags.TRUE; } else { data[2] = CloudSimTags.FALSE; } sendNow(userId, CloudSimTags.CLOUDLET_PAUSE_ACK, data); } }
vmId = data[2]; status = getVmAllocationPolicy().getHost(vmId, userId).getVm(vmId,userId).getCloudletScheduler() .getCloudletStatus(cloudletId); .getCloudletScheduler().getCloudletStatus(cloudletId); } catch (Exception e) { Log.printConcatLine(getName(), ": Error in processing CloudSimTags.CLOUDLET_STATUS");
.getCloudletScheduler().cloudletResume(cloudletId);
.getCloudletScheduler().cloudletCancel(cloudletId); vm.getCloudletScheduler().cloudletSubmit(cl, fileTransferTime);
CloudletScheduler scheduler = vm.getCloudletScheduler(); double estimatedFinishTime = scheduler.cloudletSubmit(cl, fileTransferTime);
CloudletScheduler scheduler = vm.getCloudletScheduler(); double estimatedFinishTime = scheduler.cloudletSubmit(cl, fileTransferTime);