Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Static Private Member Functions | Private Attributes

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

List of all members.

Classes

class  BooleanCondition< T >
class  ConditionFilter< T >
class  ExistenceCondition< T >
class  ForAllCondition< T >
interface  ICondition< T >

Public Member Functions

 AbstractAlgorithm (TransactionSet gamma, boolean tight)
ResultList calculateAllWcrt () throws AbortedException
double calculateSingleWCRT (Task tauUA) throws AbortedException
double calculateSingleWCRT (int u_OneBased, int a_OneBased) throws AbortedException
abstract void checkAlgorithmCompatibility () throws IncompatibleDataException
void checkDifferentPids () throws IncompatibleDataException
void checkSpecialPredecessor () throws IncompatibleDataException
void checkSystemLoad () throws IncompatibleDataException
final TransactionSet gamma ()
final Transaction gamma (int transactionIndex)
Collection< Taskhp (Transaction gamma_i, Task tau_ua)
boolean isAbort ()
boolean isTight ()
int p_0 (Task tau_ua, Task tau_uc)
double PHI_ijc (Task tau_ij, Task tau_ic)
void requestAbort (boolean abort)
List< Integer > taskIndices (Collection< Task > taskList)
Set< Integer > taskIndicesSet (Collection< Task > taskList)
final Task tau (int transactionIndex, int taskIndex)
double W_ic (Task tau_ic, Task tau_ua, double t) throws AbortedException

Static Public Member Functions

static< TextendsObject > boolean elementExists (Iterable< T > baseSet, ICondition< T > withCondition)
static< TextendsObject > List< T > filterASet (Iterable< T > baseSet, ICondition< T > forCondition)
static< TextendsObject > boolean forAll (Iterable< T > baseSet, ICondition< T > withCondition)

Protected Member Functions

boolean equals (Object obj1, Object obj2)
abstract double R (Task tauUA) throws AbortedException
final int taskIndex (Task tauXY)
final Task tau (Transaction transaction, int taskIndex)
final int transactionIndex (Task tauXY)
final int transactionIndex (Transaction gammaI)
final Transaction transactionOf (Task tauXY)

Static Protected Member Functions

static final int ceil (double a)
static final int floor (double a)
static final double max (double double1, double double2)
static final int max (int int1, int int2)
static final double min (double double1, double double2)
static final double mod (double divider, double quotient)
static final int posCeil (double a)

Protected Attributes

final TransactionSet gamma

Static Protected Attributes

static final double EPSILON = 1e-12

Static Private Member Functions

static double murksRundung (double a)

Private Attributes

boolean abort = false
final boolean tight
IdentityHashMap< Task,
Transaction
transactionCache = new IdentityHashMap<Task, Transaction>()

Constructor & Destructor Documentation

de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.AbstractAlgorithm ( TransactionSet  gamma,
boolean  tight 
)

Member Function Documentation

ResultList de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.calculateAllWcrt (  )  throws AbortedException
double de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.calculateSingleWCRT ( int  u_OneBased,
int  a_OneBased 
) throws AbortedException
double de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.calculateSingleWCRT ( Task  tauUA  )  throws AbortedException
Parameters:
tauUA &#964;ua, Task under analysis

Reimplemented in de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdopsPlus.

static final int de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.ceil ( double  a  )  [static, protected]
abstract void de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.checkAlgorithmCompatibility (  )  throws IncompatibleDataException [pure virtual]
void de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.checkDifferentPids (  )  throws IncompatibleDataException
void de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.checkSpecialPredecessor (  )  throws IncompatibleDataException
void de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.checkSystemLoad (  )  throws IncompatibleDataException
static <TextendsObject> boolean de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.elementExists ( Iterable< T >  baseSet,
ICondition< T >  withCondition 
) [static]
boolean de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.equals ( Object  obj1,
Object  obj2 
) [protected]
static <TextendsObject> List<T> de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.filterASet ( Iterable< T >  baseSet,
ICondition< T >  forCondition 
) [static]
static final int de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.floor ( double  a  )  [static, protected]
static <TextendsObject> boolean de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.forAll ( Iterable< T >  baseSet,
ICondition< T >  withCondition 
) [static]
Parameters:
transactionIndex i
Returns:
&#915;i
Collection<Task> de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.hp ( Transaction  gamma_i,
Task  tau_ua 
)

Searches for tasks of transaction gamma_i with higher or equal priority than task tau_ua, but excludes comarison task tau_ua. Difference to other implementation: Includes other Tasks of same priority

Reimplemented in de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmAlternativeWcdops, de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdopsPlus, de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdopsPlusFast, and de.fraunhofer.isst.axbench.timing.algorithms.cache.CachedAlgorithmWcdopsPlusOuter.CachedAlgorithmWcdopsPlus.

boolean de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.isAbort (  ) 
boolean de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.isTight (  ) 
static final double de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.max ( double  double1,
double  double2 
) [static, protected]
static final int de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.max ( int  int1,
int  int2 
) [static, protected]
static final double de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.min ( double  double1,
double  double2 
) [static, protected]
static final double de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.mod ( double  divider,
double  quotient 
) [static, protected]
static double de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.murksRundung ( double  a  )  [static, private]
int de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.p_0 ( Task  tau_ua,
Task  tau_uc 
)
double de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.PHI_ijc ( Task  tau_ij,
Task  tau_ic 
)
static final int de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.posCeil ( double  a  )  [static, protected]
abstract double de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.R ( Task  tauUA  )  throws AbortedException [protected, pure virtual]
void de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.requestAbort ( boolean  abort  ) 

Wrapper for old hIj method

Parameters:
i 
j 
tauAB 
Returns:
Set of Tasks

Implements de.fraunhofer.isst.axbench.timing.algorithms.IAlgorithm.

Reimplemented in de.fraunhofer.isst.axbench.timing.algorithms.AlgorithmWcdo.

final int de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.taskIndex ( Task  tauXY  )  [protected]
Parameters:
tauXY &#964;xy
Returns:
List<Integer> de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.taskIndices ( Collection< Task taskList  ) 
Set<Integer> de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.taskIndicesSet ( Collection< Task taskList  ) 
final Task de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.tau ( Transaction  transaction,
int  taskIndex 
) [protected]
final Task de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.tau ( int  transactionIndex,
int  taskIndex 
)
final int de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.transactionIndex ( Transaction  gammaI  )  [protected]
final int de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.transactionIndex ( Task  tauXY  )  [protected]
final Transaction de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.transactionOf ( Task  tauXY  )  [protected]
Parameters:
tauXY &#964;xy
Returns:
double de.fraunhofer.isst.axbench.timing.algorithms.AbstractAlgorithm.W_ic ( Task  tau_ic,
Task  tau_ua,
double  t 
) throws AbortedException

Eq. 5.7


Member Data Documentation