Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions

de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops Class Reference

List of all members.

Public Member Functions

 AlgorithmAlternativeWcdops (TransactionSet gamma)
ResultList calculateAllWcrt () throws AbortedException
void checkAlgorithmCompatibility () throws IncompatibleDataException
List< Taskhp (Transaction gammaI, Task tauUA)
double R (Task tauUA)

Protected Member Functions

ConflictsTable BUILD_CONFLICTS_TABLE (final Task tauAB, final double t, final Transaction gammaI, final Task tauIK)
ConflictsTable BUILD_CONFLICTS_TABLE_IN_GAMMAa (Task tauAB, int p_Prime_ab, double t, Transaction gammaA, Task tauAC)
Set< TaskH (Transaction gammaI, int j, Task tauAB)
List< TaskMP (Transaction gammaI, Task tauAB)
int nIPS (Transaction gammaI, Task tauAB)
int p_Prime_0 (Transaction gammaI, int j, int k)
double phi_Prime (Transaction gammaI, int j, int k)
double RESOLVE_CONFLICTS (Task tauAB, double t, Transaction gammaI, Task tauIK)
double RESOLVE_CONFLICTS_IN_GAMMAa (Task tauAB, int p_Prime_ab, double t, Transaction gammaA, Task tauIK)
double W (Transaction gammaI, int k, Task tauAB, double t)
double W (Task tauAB, int p_Prime_ab, double t)
double W_forLateJobs (Task tauAB, int p_Prime_ab, double t)
double W_Star (Transaction gammaI, Task tauAB, double t)
List< TaskXP (Transaction gammaI, Task tauAB)

Protected Attributes

final WcdoResultList wcdopsResult

Private Member Functions

double PHI (Transaction gammaI, int taskIndex)

Detailed Description

WCDOPS algorithm for calculating WCRT. (Worst-Case Dynamic Offsets with Priority Schemes).

This alternative implementation tries to be as close as possible to the pseudo code and mathematical formulas in the theoretical paper. For this reason the java naming conventions are ignored.

Literature: https://vts.isst.fhg.de/repos/safeware/literatur/scheduling/spain_palencia_harbour/jcp-mgh-1999b.pdf

Author:
shanno

Constructor & Destructor Documentation

de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.AlgorithmAlternativeWcdops ( TransactionSet  gamma  ) 
Parameters:
gamma &#915;

Member Function Documentation

ConflictsTable de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.BUILD_CONFLICTS_TABLE ( final Task  tauAB,
final double  t,
final Transaction  gammaI,
final Task  tauIK 
) [protected]

Taken from jcp-mgh-1999b.pdf, page 6.

Parameters:
tauAB &#964;ab
t 
gammaI &#915;i
tauIK 
Returns:
ConflictsTable de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.BUILD_CONFLICTS_TABLE_IN_GAMMAa ( Task  tauAB,
int  p_Prime_ab,
double  t,
Transaction  gammaA,
Task  tauAC 
) [protected]

Taken from jcp-mgh-1999b.pdf, page 9 and reference implementation and SL-Implementation TODO: correct this (much is guessed)

Parameters:
tauAB &#964;ab
p_Prime_ab 
t 
gammaA &#915;a
tauAC &#964;ab
Returns:
ResultList de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.calculateAllWcrt (  )  throws AbortedException
void de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.checkAlgorithmCompatibility (  )  throws IncompatibleDataException [virtual]
Set<Task> de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.H ( Transaction  gammaI,
int  j,
Task  tauAB 
) [protected]

Taken from jcp-mgh-1999b.pdf, page 5, equation 20

Parameters:
gammaI &#915;i
tauAB &#964;ab, low prio task
Returns:
List<Task> de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.hp ( Transaction  gammaI,
Task  tauUA 
)

Taken from jcp-mgh-1999b.pdf, page 2, after equation 2

hp(tauab) represents the set of tasks belonging to transaction &#915;i with priority higher than or equal to the priority of tauab and executing in the same processor as tauab.

Parameters:
gammaI &#915;i
tauUA &#964;ab
Returns:
List of Tasks

Reimplemented from de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.

List<Task> de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.MP ( Transaction  gammaI,
Task  tauAB 
) [protected]

Taken from jcp-mgh-1999b.pdf, page 5, equation 22 and reference source

Creates a list of tasks from gammaI transaction that belong to the MP set. MP is the set of tasks in this transaction that may preempt &#964;ab more than once. Hence tasks in MP must have higher or equal prority than &#964;ab and may not be preceded by a task that has a lower prio and that executes in the same PE as &#964;ab.

Parameters:
gammaI &#915;i
tauAB &#964;ab, low prio task
Returns:
int de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.nIPS ( Transaction  gammaI,
Task  tauAB 
) [protected]

only from matlab file, hack

Parameters:
gammaI &#915;i
tauAB &#964;ab
Returns:
int de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.p_Prime_0 ( Transaction  gammaI,
int  j,
int  k 
) [protected]

p�0,ijk, pStrich0
Taken from jcp-mgh-1999b.pdf, page 4, equation 19

Parameters:
gammaI &#915;i
j 
k 
Returns:
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.PHI ( Transaction  gammaI,
int  taskIndex 
) [private]
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.phi_Prime ( Transaction  gammaI,
int  j,
int  k 
) [protected]

&#966;�ijk, phiStrich
Taken from jcp-mgh-1999b.pdf, page 4, equation 17

Parameters:
gammaI &#915;i
j 
k 
Returns:
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.R ( Task  tauUA  )  [virtual]
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.RESOLVE_CONFLICTS ( Task  tauAB,
double  t,
Transaction  gammaI,
Task  tauIK 
) [protected]

Taken from jcp-mgh-1999b.pdf, page 6.

Parameters:
tauAB &#964;ab
t 
gammaI &#915;i
tauIk 
Returns:
time
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.RESOLVE_CONFLICTS_IN_GAMMAa ( Task  tauAB,
int  p_Prime_ab,
double  t,
Transaction  gammaA,
Task  tauIK 
) [protected]

Taken from jcp-mgh-1999b.pdf, page 9.

Parameters:
tauAB &#964;ab
p_Prime_ab p�ab
t 
gammaA &#915;a
tauIk &#964;ik
Returns:
time
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.W ( Task  tauAB,
int  p_Prime_ab,
double  t 
) [protected]

Taken from jcp-mgh-1999b.pdf, page 9, after equation 35
Wac(&#964;ab, p�ab, t)
Reference implementation: W_ac (Task * tau_ac, Task * tau_ab, int p_ab, double w)

Parameters:
tauAB &#964;ab
p_Prime_ab p�ab
t 
Returns:
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.W ( Transaction  gammaI,
int  k,
Task  tauAB,
double  t 
) [protected]

Taken from jcp-mgh-1999b.pdf, page 5, equation 23

Wik(&#964;ab, t)

Parameters:
gammaI &#915;i
k Task index
tauAB &#964;ab
t 
Returns:
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.W_forLateJobs ( Task  tauAB,
int  p_Prime_ab,
double  t 
) [protected]
double de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.W_Star ( Transaction  gammaI,
Task  tauAB,
double  t 
) [protected]

W*i(&#964;ab, t)
Taken from jcp-mgh-1999b.pdf, page 7, equation 28

Parameters:
gammaI &#915;i
tauAB &#964;ab
t 
Returns:
List<Task> de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops.XP ( Transaction  gammaI,
Task  tauAB 
) [protected]

Taken from jcp-mgh-1999b.pdf, page 7, near equation 28

Parameters:
gammaI &#915;i
tauAB &#964;ab
Returns:

Member Data Documentation