9,7 → 9,7 |
* Paolo Gai <pj@gandalf.sssup.it> |
* Massimiliano Giorgi <massy@gandalf.sssup.it> |
* Luca Abeni <luca@gandalf.sssup.it> |
* (see the web pages for full authors list) |
* Anton Cervin |
* |
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
* |
21,11 → 21,11 |
|
/** |
------------ |
CVS : $Id: edf.h,v 1.5 2004-05-17 15:03:50 anton Exp $ |
CVS : $Id: edf.h,v 1.6 2004-06-21 11:40:06 anton Exp $ |
|
File: $File$ |
Revision: $Revision: 1.5 $ |
Last update: $Date: 2004-05-17 15:03:50 $ |
Revision: $Revision: 1.6 $ |
Last update: $Date: 2004-06-21 11:40:06 $ |
------------ |
|
This file contains the scheduling module EDF (Earliest Deadline First) |
38,7 → 38,8 |
wcet field and mit field must be != 0. They are used to set the wcet |
and period of the tasks. |
periodicity field can be either PERIODIC or APERIODIC |
drel field must be <= mit. NOTE: a drel of 0 is interpreted as mit. |
drel field must be <= mit. NOTE 1: a drel of 0 is interpreted as mit. |
NOTE 2: The utilization of the task is computed as wcet/drel. |
offset field specifies a release offset relative to task_activate or |
group_activate. |
|
60,8 → 61,8 |
|
Exceptions raised: |
XUNVALID_GUEST |
This level doesn't support guests. When a guest operation |
is called, the exception is raised. |
This level doesn't support guests of this type. When a guest |
operation is called, the exception is raised. |
|
The following exceptions may be raised by the module: |
XDEADLINE_MISS |
82,12 → 83,11 |
|
- Relative deadlines drel <= mit may be specified. |
- An offset > 0 will delay the activation of the task by the same |
amount of time. To synchronize a group of tasks, use the |
group_activate function. |
amount of time. To synchronize a group of tasks, assign suitable |
offsets and then use the group_activate function. |
- This level doesn't manage the main task. |
- The level uses the priority and timespec_priority fields. |
- A function to return the used bandwidth of a level is provided. |
- The guest tasks don't provide the guest_endcycle function |
- The guest tasks don't provide the guest_endcycle function. |
- At init time, the user can specify the behavior in case of |
deadline and wcet overruns. The following flags are available: |
|
110,10 → 110,10 |
EDF_ENABLE_ACT_EXCEPTION When a periodic or sporadic task is activated |
too often, an exception is raised. |
|
- The functions EDF_get_dl_miss, EDF_get_wcet_miss, EDF_get_nact, |
and EDF_get_nskip can be used to find out the number of missed |
deadlines, number of wcet overruns, number of currently queued |
periodic activations, and the number of skipped sporadic activations. |
- The functions EDF_get_dl_miss, EDF_get_wcet_miss, EDF_get_act_miss, |
and EDF_get_nact can be used to find out the number of missed |
deadlines, the number of wcet overruns, the number of skipped |
activations, and the number of currently queued periodic activations. |
|
**/ |
|
148,28 → 148,37 |
|
__BEGIN_DECLS |
|
|
/*+ flags... +*/ |
/* Level flags */ |
#define EDF_DISABLE_ALL 0 |
#define EDF_ENABLE_GUARANTEE 1 /*+ Task guarantee enabled +*/ |
#define EDF_ENABLE_WCET_CHECK 2 /*+ Wcet monitoring enabled +*/ |
#define EDF_ENABLE_DL_CHECK 4 /*+ Deadline monitoring enabled +*/ |
#define EDF_ENABLE_WCET_EXCEPTION 8 /*+ Wcet overrun exception enabled +*/ |
#define EDF_ENABLE_DL_EXCEPTION 16 /*+ Deadline overrun exception enabled +*/ |
#define EDF_ENABLE_ACT_EXCEPTION 32 /*+ Activation exception enabled +*/ |
#define EDF_ENABLE_ALL 63 /*+ All flags enabled +*/ |
#define EDF_ENABLE_GUARANTEE 1 /* Task guarantee enabled */ |
#define EDF_ENABLE_WCET_CHECK 2 /* Wcet monitoring enabled */ |
#define EDF_ENABLE_DL_CHECK 4 /* Deadline monitoring enabled */ |
#define EDF_ENABLE_WCET_EXCEPTION 8 /* Wcet overrun exception enabled */ |
#define EDF_ENABLE_DL_EXCEPTION 16 /* Deadline overrun exception enabled */ |
#define EDF_ENABLE_ACT_EXCEPTION 32 /* Activation exception enabled */ |
#define EDF_ENABLE_ALL 63 /* All flags enabled */ |
|
|
/*+ Registration function +*/ |
/* Registration function */ |
LEVEL EDF_register_level(int flags); |
|
/*+ Returns the used bandwidth of a level +*/ |
|
/**** Public utility functions ****/ |
|
/* Get the bandwidth used by the level */ |
bandwidth_t EDF_usedbandwidth(LEVEL l); |
|
/* Get the number of missed deadlines for a task */ |
int EDF_get_dl_miss(PID p); |
|
/* Get the number of execution overruns for a task */ |
int EDF_get_wcet_miss(PID p); |
|
/* Get the number of skipped activations for a task */ |
int EDF_get_act_miss(PID p); |
|
/* Get the current number of queued activations for a task */ |
int EDF_get_nact(PID p); |
int EDF_get_nskip(PID p); |
|
|
__END_DECLS |
#endif |