public:
Cpu(){};
Cpu(CpuModelPtr model, const char* name, xbt_dict_t properties) : Resource(model, name, properties) {};
- CpuActionPtr execute(double size);
- CpuActionPtr sleep(double duration);
- e_surf_resource_state_t getState();
- int getCore();
- double getSpeed(double load);
- double getAvailableSpeed();
- void addTraces(void);
+ virtual ActionPtr execute(double size)=0;
+ virtual ActionPtr sleep(double duration)=0;
+ virtual int getCore();
+ virtual double getSpeed(double load);
+ virtual double getAvailableSpeed();
+
+ virtual double getCurrentPowerPeak()=0;
+ virtual double getPowerPeakAt(int pstate_index)=0;
+ virtual int getNbPstates()=0;
+ virtual void setPowerPeakAt(int pstate_index)=0;
+ virtual double getConsumedEnergy()=0;
+ void addTraces(void);
double m_powerPeak; /*< CPU power peak */
double m_powerScale; /*< Percentage of CPU disponible */
-protected:
int m_core;
+protected:
//virtual boost::shared_ptr<Action> execute(double size) = 0;
//virtual boost::shared_ptr<Action> sleep(double duration) = 0;
public:
CpuLmm(){};
CpuLmm(CpuModelPtr model, const char* name, xbt_dict_t properties) : ResourceLmm(), Cpu(model, name, properties) {};
-
+ /* Note (hypervisor): */
+ lmm_constraint_t *p_constraintCore;
};
/**********
class CpuAction : virtual public Action {
public:
CpuAction(){};
- CpuAction(ModelPtr model, double cost, bool failed): Action(model, cost, failed) {};
+ CpuAction(ModelPtr model, double cost, bool failed)
+ : Action(model, cost, failed) {};
};
class CpuActionLmm : public ActionLmm, public CpuAction {
public:
CpuActionLmm(){};
- CpuActionLmm(ModelPtr model, double cost, bool failed): ActionLmm(model, cost, failed), CpuAction(model, cost, failed) {};
+ CpuActionLmm(ModelPtr model, double cost, bool failed)
+ : Action(model, cost, failed), ActionLmm(model, cost, failed), CpuAction(model, cost, failed) {};
void updateRemainingLazy(double now);
+ virtual void updateEnergy()=0;
+ void setAffinity(CpuLmmPtr cpu, unsigned long mask);
+ void setBound(double bound);
+ double m_bound;
};