Scheduler
domainModel.h
Go to the documentation of this file.
1 
10 #ifndef RL_SCHEDULER_DOMAIN_MODEL_H
11 #define RL_SCHEDULER_DOMAIN_MODEL_H
12 
13 #include <cmath>
14 #include <memory>
15 
16 #include <utils/record.h>
17 
18 #include <mdp/domainModel.h>
19 
20 namespace Scheduler
21 {
22  class Queue;
23  class Process;
24  class TemperatureModel;
25 }
26 
27 namespace RlScheduler
28 {
29 
30 class MaxTempEstimator;
31 class Configuration;
32 
34 {
35 public:
36  DomainModel(std::shared_ptr<Configuration> conf);
37  ~DomainModel();
38  void end();
39  double measureReward() override;
41  std::shared_ptr<Scheduler::Process> running;
42  double reward{0.0};
43 protected:
44  double getTemperatureCost();
45  double getInstantaneousTemp();
46  double getAging();
47 private:
48  std::shared_ptr<Configuration> conf;
49 
50  double deadlineMissRewardCoeff{1.0};
51  double temperatureRewardCoeff{0.0};
52  double agingRewardCoeff{0.0};
53  MaxTempEstimator *maxTempEstimator{nullptr};
54  Utils::Record tempRecord;
55  Utils::Record maxTempRecord;
56  bool usingThreshold{true};
57 };
58 
59 }
60 
61 #endif
This class implements the ready queue and the wait queue. Those queues contain processes ready to run...
Definition: queue.h:28
Scheduler::Queue * readyQueue
Definition: domainModel.h:40
Definition: reward.py:1
std::shared_ptr< Scheduler::Process > running
Definition: domainModel.h:41