init
This commit is contained in:
199
src/org/cloudbus/cloudsim/provisioners/PeProvisioner.java
Normal file
199
src/org/cloudbus/cloudsim/provisioners/PeProvisioner.java
Normal file
@@ -0,0 +1,199 @@
|
||||
/*
|
||||
* Title: CloudSim Toolkit
|
||||
* Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation of Clouds
|
||||
* Licence: GPL - http://www.gnu.org/copyleft/gpl.html
|
||||
*
|
||||
* Copyright (c) 2009-2012, The University of Melbourne, Australia
|
||||
*/
|
||||
|
||||
package org.cloudbus.cloudsim.provisioners;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.cloudbus.cloudsim.Vm;
|
||||
|
||||
/**
|
||||
* The Class PeProvisioner.
|
||||
*
|
||||
* @author Anton Beloglazov
|
||||
* @since CloudSim Toolkit 2.0
|
||||
*/
|
||||
public abstract class PeProvisioner {
|
||||
|
||||
/** The mips. */
|
||||
private double mips;
|
||||
|
||||
/** The available mips. */
|
||||
private double availableMips;
|
||||
|
||||
/**
|
||||
* Creates the new PeProvisioner.
|
||||
*
|
||||
* @param mips overall amount of MIPS available in the Pe
|
||||
*
|
||||
* @pre mips>=0
|
||||
* @post $none
|
||||
*/
|
||||
public PeProvisioner(double mips) {
|
||||
setMips(mips);
|
||||
setAvailableMips(mips);
|
||||
}
|
||||
|
||||
/**
|
||||
* Allocates MIPS for a given VM.
|
||||
*
|
||||
* @param vm virtual machine for which the MIPS are being allocated
|
||||
* @param mips the mips
|
||||
*
|
||||
* @return $true if the MIPS could be allocated; $false otherwise
|
||||
*
|
||||
* @pre $none
|
||||
* @post $none
|
||||
*/
|
||||
public abstract boolean allocateMipsForVm(Vm vm, double mips);
|
||||
|
||||
/**
|
||||
* Allocates MIPS for a given VM.
|
||||
*
|
||||
* @param vmUid the vm uid
|
||||
* @param mips the mips
|
||||
*
|
||||
* @return $true if the MIPS could be allocated; $false otherwise
|
||||
*
|
||||
* @pre $none
|
||||
* @post $none
|
||||
*/
|
||||
public abstract boolean allocateMipsForVm(String vmUid, double mips);
|
||||
|
||||
/**
|
||||
* Allocates MIPS for a given VM.
|
||||
*
|
||||
* @param vm virtual machine for which the MIPS are being allocated
|
||||
* @param mips the mips for each virtual Pe
|
||||
*
|
||||
* @return $true if the MIPS could be allocated; $false otherwise
|
||||
*
|
||||
* @pre $none
|
||||
* @post $none
|
||||
*/
|
||||
public abstract boolean allocateMipsForVm(Vm vm, List<Double> mips);
|
||||
|
||||
/**
|
||||
* Gets allocated MIPS for a given VM.
|
||||
*
|
||||
* @param vm virtual machine for which the MIPS are being allocated
|
||||
*
|
||||
* @return array of allocated MIPS
|
||||
*
|
||||
* @pre $none
|
||||
* @post $none
|
||||
*/
|
||||
public abstract List<Double> getAllocatedMipsForVm(Vm vm);
|
||||
|
||||
/**
|
||||
* Gets total allocated MIPS for a given VM for all PEs.
|
||||
*
|
||||
* @param vm virtual machine for which the MIPS are being allocated
|
||||
*
|
||||
* @return total allocated MIPS
|
||||
*
|
||||
* @pre $none
|
||||
* @post $none
|
||||
*/
|
||||
public abstract double getTotalAllocatedMipsForVm(Vm vm);
|
||||
|
||||
/**
|
||||
* Gets allocated MIPS for a given VM for a given virtual Pe.
|
||||
*
|
||||
* @param vm virtual machine for which the MIPS are being allocated
|
||||
* @param peId the pe id
|
||||
*
|
||||
* @return allocated MIPS
|
||||
*
|
||||
* @pre $none
|
||||
* @post $none
|
||||
*/
|
||||
public abstract double getAllocatedMipsForVmByVirtualPeId(Vm vm, int peId);
|
||||
|
||||
/**
|
||||
* Releases MIPS used by a VM.
|
||||
*
|
||||
* @param vm the vm
|
||||
*
|
||||
* @pre $none
|
||||
* @post none
|
||||
*/
|
||||
public abstract void deallocateMipsForVm(Vm vm);
|
||||
|
||||
/**
|
||||
* Releases MIPS used by all VMs.
|
||||
*
|
||||
* @pre $none
|
||||
* @post none
|
||||
*/
|
||||
public void deallocateMipsForAllVms() {
|
||||
setAvailableMips(getMips());
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the MIPS.
|
||||
*
|
||||
* @return the MIPS
|
||||
*/
|
||||
public double getMips() {
|
||||
return mips;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the MIPS.
|
||||
*
|
||||
* @param mips the MIPS to set
|
||||
*/
|
||||
public void setMips(double mips) {
|
||||
this.mips = mips;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the available MIPS in the PE.
|
||||
*
|
||||
* @return available MIPS
|
||||
*
|
||||
* @pre $none
|
||||
* @post $none
|
||||
*/
|
||||
public double getAvailableMips() {
|
||||
return availableMips;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the available MIPS.
|
||||
*
|
||||
* @param availableMips the availableMips to set
|
||||
*/
|
||||
protected void setAvailableMips(double availableMips) {
|
||||
this.availableMips = availableMips;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the total allocated MIPS.
|
||||
*
|
||||
* @return the total allocated MIPS
|
||||
*/
|
||||
public double getTotalAllocatedMips() {
|
||||
double totalAllocatedMips = getMips() - getAvailableMips();
|
||||
if (totalAllocatedMips > 0) {
|
||||
return totalAllocatedMips;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the utilization of the Pe in percents.
|
||||
*
|
||||
* @return the utilization
|
||||
*/
|
||||
public double getUtilization() {
|
||||
return getTotalAllocatedMips() / getMips();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user