10 #ifndef TASKSCHEDULER_H 11 #define TASKSCHEDULER_H 27 class SchedulerConfiguration;
28 class SchedulingDiscipline;
29 class TemperatureModel;
59 void end(std::string reportsFolder);
74 std::shared_ptr<Process> runningTask{
nullptr};
82 std::shared_ptr<SchedulerConfiguration>
conf;
void printReports(std::string folder)
TaskScheduler(std::shared_ptr< SchedulerConfiguration > conf)
void putRunningTaskBackToReadyQueue(std::shared_ptr< Process > task)
void end(std::string reportsFolder)
cleanup and print reports
std::shared_ptr< Event > burstEnd
void printRunningProcess(std::shared_ptr< Process > runningTask)
void setBurstEnd(std::shared_ptr< Event > e)
void setDiscipline(std::unique_ptr< SchedulingDiscipline > discipline)
unsigned int deadlineMisses
void scheduleTask(TriggeringEvent trigger)
This function is the scheduler. When called, it schedule the task to be executed on the processor ama...
std::shared_ptr< Process > runningTask
std::shared_ptr< SchedulerConfiguration > conf
void clearRunningTask(std::shared_ptr< Process > p)
void scheduleEndOfBurst(std::shared_ptr< Process > runningTask)
void dealWithMissedDeadlines(std::shared_ptr< Process > p)
to be called when a deadline mis event happends. This function will terminate the task and update the...
std::shared_ptr< Event > getBurstEnd()
Utils::Record deadlinesHistory
std::unique_ptr< SchedulingDiscipline > discipline
void printDeadlineMissesReport(std::string folder)