24 std::vector <TaskAlloc*>::iterator task;
48 std::vector<CoreScheduler*>::iterator iter;
51 result += (*iter)->getCurrentMIPSRecursive();
82 vector<TaskAlloc*>::iterator iter;
86 if ((*iter) == tskobj) {
95 vector<TaskAlloc*>::iterator iter;
100 if ((*iter)->cloudTask->id_ == tskobj->
id_) {
111 vector<TaskAlloc*>::iterator iter;
115 if ((*iter)->cloudTask->id_ == tskobj->
id_) {
117 (*iter)->setExecTime(Scheduler::instance().clock());
136 (*iter)->cloudTask->removeTaskAlloc(*iter);
160 if((*iter)->cloudTask->failed_==
false){
161 (*iter)->cloudTask->fail(this->
provider);
175 std::vector<TaskAlloc*>::iterator iter;
181 if ((*iter)->getMIPS() <= 1) {
190 else if(Scheduler::instance().clock() >= (*iter)->cloudTask->getDeadline()) {
192 }
else if ((*iter)->cloudTask->failed_==
true){
193 std::cerr <<
"This should not happen!\n";
203 std::vector<TaskAlloc*>::iterator iter;
209 (*iter)->updateMIPS();
215 double maxrate = 0.0;
220 if((
double)((*iter)->getDeadline() - Scheduler::instance().clock())>0 && (*iter)->cloudTask->failed_==
false){
221 double rate = (double)(*iter)->getMIPS()/(double)((*iter)->getDeadline() - Scheduler::instance().clock());
235 if((
double)((*iter)->getDeadline() - Scheduler::instance().clock())>0 && (*iter)->cloudTask->failed_==
false){
236 double rate = (double)(*iter)->getMIPS()/(double)((*iter)->getDeadline() - Scheduler::instance().clock());
246 else{
return maxrate;}
253 vector<TaskAlloc*>::iterator iter;
266 vector<TaskAlloc*>::iterator iter;
277 double nextDeadline = DBL_MAX;
280 if (nextDeadline > (*iter)->execTime()){
281 nextDeadline = (*iter)->execTime();
std::vector< TaskAlloc * > tasks_alloc_list_
CoreScheduler * getHostScheduler()
void scheduleNextExent(double nextDeadline)
Capacity * available_mips_
CoreScheduler(Capacity *nominal_mips_, Capacity *available_mips_)
void sendTaskOutput(CloudTask *task)
ResourceProvider * getProvider()
std::vector< TaskAlloc * > tasks_alloc_assigned_
void startTaskExecution(CloudTask *tskobj)
CoreScheduler * host_scheduler_
double getMostUrgentTaskRate()
void updateTskComputingRates(double c_mips)
void setCoreScheduler(CoreScheduler *cs)
double getAvailableMIPS()
void setDVFS(int eDVFS_enabled_)
bool removeAllocationsFromAssginedList(CloudTask *tskobj)
CloudTask * removeTaskAlloc(std::vector< TaskAlloc * >::iterator &iter, bool executed)
void removeVcoreScheduler(CoreScheduler *cs)
void assignTask(TaskAlloc *tskobj)
void removeFailedTaskAlloc(std::vector< TaskAlloc * >::iterator &iter, bool executed)
bool releaseAllocation(ResourceConsumer *rc)
virtual void updateEnergyAndConsumption()=0
double getCurrentMIPSRecursive()
void addVcoreScheduler(CoreScheduler *cs)
void executeTask(TaskAlloc *tskobj)
bool removeFromAssginedList(TaskAlloc *tskobj)
ResourceProvider * provider
std::vector< CoreScheduler * > hosted_vcores_schedulers
void setProvider(ResourceProvider *provider)