List of all members.
Public Member Functions |
| AlgorithmWcdo (TransactionSet gamma, Class<?extends AbstractAlgorithm > baseAlgoClass, boolean tight) |
ResultList | calculateAllWcrt () throws AbortedException |
void | checkAlgorithmCompatibility () throws IncompatibleDataException |
void | doIterationStep () throws AbortedException |
double | dyn_O (Task tau_ab) |
Map< Task, Double > | getDynJitter () |
Map< Task, Double > | getDynWcrt () |
double | R (Task tauUA) throws AbortedException |
double | R_b (Task tau_ab) |
void | requestAbort (boolean abort) |
void | updateJitter () |
Static Public Member Functions |
static TransactionSet | createCompatibleGamma (TransactionSet ori) |
static void | main (String...args) throws IOException, AbortedException |
Protected Member Functions |
AbstractAlgorithm | createInnerAlgorithm () |
double | dyn_J (Task tau_ab) |
boolean | isConvergent () |
Task | previousTask (Task tau_ab) |
Protected Attributes |
Map< Task, Double > | dynJitter = new LinkedHashMap<Task, Double>() |
Map< Task, Double > | dynWcrts = new LinkedHashMap<Task, Double>() |
AbstractAlgorithm | innerAlgo |
final Class<?extends
AbstractAlgorithm > | innerAlgoClass |
Map< Task, Double > | oldJitter |
Map< Task, Double > | oldWcrts |
TransactionSet | workingGamma |
Private Member Functions |
ResultList | toResultList () |
Static Private Attributes |
static final boolean | USE_ORIGINAL_SEQUENCE_PREDECESSOR = false |
Detailed Description
This class implements the base functionality of the WCDO algorithm. As a difference to the WCSO and exact algorithm, the WCDO algorithm allows as well the usage of precedence relations as the usage of multiple resources (e.g. processors).
The WCDO algorithm calculates temporary offsets according to the resource IDs and the precenence relations and uses a "lower" algorithm for the calculation of the WCRT. Then it calculates / adjusts a dynamic jitter and iterates the calculation until a fix point is reached.
As "lower" algorithm the WCSO or the exact algorithm can be used, and the WCSO algorithm can also be used in tight mode.
- Author:
- shanno
Constructor & Destructor Documentation
de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.AlgorithmWcdo |
( |
TransactionSet |
gamma, |
|
|
Class<?extends AbstractAlgorithm > |
baseAlgoClass, |
|
|
boolean |
tight | |
|
) |
| | |
- Parameters:
-
| gamma | The TransactionSet to use. |
| baseAlgoClass | The class of the Algorithm to use in base calculation. Allowed base algorithms: AlgorithmWcso, AlgorithmExact and the cached variants of them. |
| tight | When using AlgorithmWcso, this parameter determines whether a tight implementation is used. |
Member Function Documentation
void de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.checkAlgorithmCompatibility |
( |
|
) |
throws IncompatibleDataException [virtual] |
Creates a compatible TransactionSet by creating predecessor relation according to task order. Using this method, you can use this WCDO algorithm with WCSO test data
AbstractAlgorithm de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.createInnerAlgorithm |
( |
|
) |
[protected] |
void de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.doIterationStep |
( |
|
) |
throws AbortedException |
Iteration step of calculating all R values
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.dyn_J |
( |
Task |
tau_ab |
) |
[protected] |
calculates the dynamic jitter, used by jitter update
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.dyn_O |
( |
Task |
tau_ab |
) |
|
Map<Task, Double> de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.getDynJitter |
( |
|
) |
|
Map<Task, Double> de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.getDynWcrt |
( |
|
) |
|
boolean de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.isConvergent |
( |
|
) |
[protected] |
static void de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.main |
( |
String... |
args |
) |
throws IOException, AbortedException [static] |
Task de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.previousTask |
( |
Task |
tau_ab |
) |
[protected] |
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.R |
( |
Task |
tauUA |
) |
throws AbortedException [virtual] |
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.R_b |
( |
Task |
tau_ab |
) |
|
void de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.requestAbort |
( |
boolean |
abort |
) |
|
ResultList de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.toResultList |
( |
|
) |
[private] |
void de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.updateJitter |
( |
|
) |
|
Member Data Documentation