-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunctionNonPeriodic.h
38 lines (32 loc) · 1.63 KB
/
functionNonPeriodic.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Contains the ADTs of the non-periodic and scheduling part.
#include "structNonPeriodic.h"
// The non-periodic and scheduling driver.
int nonPeriodicJobDriver();
// Takes in the inputs. (inputs.c)
AperiodicJob *aperiodicJobsInput(FILE *, int *);
SporadicJob *sporadicJobsInput(FILE *, int *);
ScheduleFrame *framesInput(FILE *, int *, int *);
// Sorts sporadic and aperiodic jobs based on arrival time. (sort.c)
void sortSporadicJobs(SporadicJob *, int, int);
void mergeSporadicJobs(SporadicJob *, int, int, int);
void sortAperiodicJobs(AperiodicJob *, int, int);
void mergeAperiodicJobs(AperiodicJob *, int, int, int);
// Sorts sporadic jobs based on EDF (used while scheduling sporadic jobs)
// (sort.c)
void sortSporadicJobsOnEDF(SporadicJob *, int, int);
void mergeSporadicJobsOnEDF(SporadicJob *, int, int, int);
// Prints the data structures onto the output file. (printInfo.c)
void printAperiodicJobInfo(AperiodicJob *, int);
void printSporadicJobInfo(SporadicJob *, int);
void printScheduleFrameInfo(ScheduleFrame *, int, char *);
void printRunTimeSchedulingInfo(ScheduleFrame *, int, int, AperiodicJob *, int, SporadicJob *, int);
void printPreemptionInfo();
// The scheduler module (scheduler.c)
bool checkAperiodicJob(AperiodicJob *, int, float);
float
runAperiodic(AperiodicJob *, int, int *, float, float, int, int);
float runAPeriodic(PeriodicJob);
SporadicJob *findSporadicJobsInFrame(SporadicJob *, int, int *, int, float, float *, ScheduleFrame *, int);
float runSporadic(SporadicJob *, int , int *, float, float, int, int);
float runPeriodic(PeriodicJob);
void scheduler(ScheduleFrame *, int, int, AperiodicJob *, int, SporadicJob *, int);