This part of the documentation covers all the interfaces of End-to-End Analyzer Framework.
System task.
Set of tasks belonging to same Component C with priorities higher than itself one.
Calculate time of i-th activation.
Parameters: | i – Activation number. |
---|---|
Returns: | Activation time. |
Calculate response time of i-th activation.
Parameters: | i – Activation number. |
---|---|
Returns: | Response time of i-th activation. |
Note
In our case we always return task response time.
See also
Calculate previous activation for given time.
Parameters: | t – Current time. |
---|---|
Returns: | int – activation number. |
The request bound function.
It computes the maximum cumulative execution requests that could be generated from the time that task is released up to time t.
Parameters: | t – Time limit for execution requests. |
---|
See also
[Inam2548:2011] formula (2).
System servers / components.
The maximum blocking imposed to a this subsystem.
See also
[Inam2548:2011] formula (10).
Set of subsystems of System S with priority higher than itself (\(S_s\)).
See also
Used in formula (9) in [Inam2548:2011].
Set of subsystems of System S with priority lower than itself (\(S_s\)).
See also
Used in formula (10) in [Inam2548:2011].
Request Bound Function
See also
[Inam2548:2011] formula (9) and (11).
The maximum execution-time that any subsystem-internal task may lock a shared global resource.
Warning
Currently always returns 0.
The function returns Component deadline.
Currently the self.deadline==self.period.
Implementation of helper formula f1.
Parameters: | t – time |
---|
See also
[Inam2548:2011] formula (5).
Implementation of helper formula f2.
Parameters: | t – time |
---|
See also
[Inam2548:2011] formula (6).
Supply Bound Function.
If payback is True then this method depends on f1() and f2():
return max(min(f1(t), f2(t)), 0)
Parameters: | t – time |
---|
See also
[Inam2548:2011] formula (3) and (4).
Component schedulability condition.
for t in C_{tasks}:
schedulable <- False
for i in [1..P(t)]:
if rbf_t(i) <= sbf_C(i):
schedulable <- True
break
end if
end for
if not schedulable:
return False
end if
end for
return True
See also
[Inam2548:2011] formula (13).
Models a physical system with instances of Component.
Set of all non-duplicate, reachable timed paths, for which no timed path exists that shares the same start instance of the first task and has an earlier end instance of the last task.
function earlier(tp, tp'):
# index -1 gets last element in array
return tp'[0] == tp[0] and tp'[-1] < tp[-1]
end function
out <- list()
TP_reach_paths <- TP_reach(possible_paths)
for tp in TP_reach_paths:
if not any(map(partial(earlier, tp), TP_reach_paths))):
out.append(tp)
end if
end for
return out
See also
[Feiertag:08] formula (11).
It obtains the set of all paths and returns only all reachable timed path (\(\mathbb{TP}^{reach}\)).
out <- list()
for all path in possible_paths:
if reach_path(path):
out.append(path)
end if
end for
return out
See also
[Feiertag:08] formula (9).
Adds new Component instance to the system.
It stores reference of the system to added component.
Parameters: | component (Component) – New system subsystem. |
---|
It returns True if “activation time travel” occurs (\(att( t_w (i) \rightarrow t_r (j))\)).
The activation time travel occurs when the reader is activated before the writer (\(\alpha_r(i)\) is equivalent to alpha() on t()).
Parameters: |
|
---|
See also
[Feiertag:08] formula (3)
The “critical function” determines if writer and reader overlap in execution even in case of non-activation time travel (\(crit( t_w (i) \rightarrow t_r (j))\)).
Parameters: |
|
---|
See also
[Feiertag:08] formula (4)
Find maximum of First-to-First path delays.
See also
[Feiertag:08] formula (17).
Calculate First-to-First path delay.
Parameters: |
|
---|---|
Fixme : | remove dependency on tp_reach parameter. |
See also
[Feiertag:08] formula (16).
Find maximum of First-to-Last path delays.
See also
[Feiertag:08] formula (15).
Calculate First-to-Last path delay (uses pred()).
Parameters: |
|
---|---|
Fixme : | remove dependency on tp_reach parameter. |
See also
[Feiertag:08] formula (14).
The maximum “Last-to-First” timed path delay.
See also
[Feiertag:08] formula (12).
Returns maximum latency over all reachable paths (TP_reach()).
# map .. calls function for each element in list
# max .. returns maximal element from list
return max(map(delta_path, TP_reach(possible_paths)))
See also
[Feiertag:08] formula (10).
Calculate end-to-end path delay.
See also
[Feiertag:08] formula (2).
It determines the forward reachability of the two task instances \(t_w\) and \(t_r\).
Parameters: |
|
---|
See also
[Feiertag:08] formula (6)
Generator of possible paths for given task in path.
It yields tuples with task activation index starting from `index`th task in defined path.
paths <- list()
task <- tasks_in_path.pop(0) # assign and remove first task from the path
loop i from task.ialpha(start) to task.ialpha(stop):
# find a time range for next task
if length(tasks_in_path) > 0:
time <- task.alpha(i)
next_task <- tasks_in_path[0] # next task in path
j <- next_task.ialpha(time) # closest activation index
new_start <- next_tasks.alpha(j) # closest activation time
# find posible paths for next task in path from new start.
for all path in generate_paths(new_start, stop, tasks_in_path):
# join current activation index with found tuple
paths.append( path.prepend(i) )
end for
else:
paths.append( list(i) ) # list with only one index
end if
end loop
return paths
Temporal distance to the start of the latest previous “last-to-x” path.
See also
[Feiertag:08] formula (13).
The output of an instance \(t_w (i)\) is overwritten by instance \(t_w (i+1)\) when both instances can forward reach the same reading task instance \(t_r (j)\). In other words, \(t_w (i)\) can reach \(t_r (j)\) if and only if the following function returns True:
Parameters: |
|
---|
See also
[Feiertag:08] formula (7).
Check path rechability.
path_length <- length(path)
for i in [0..path_length-1):
tp_i <- path[i]
tp_i1 <- path[i+1]
if reach(t_w(tpi) -> t_{w+1}(tp_i1)):
return False
end if
end for
return True
See also
[Feiertag:08] formula (8).
This method checks the global schedulability condition.
for C in components:
# P(C) .. period of component C
schedulable <- False
for t in [0..P(C)]:
if RBF(C, t) <= t:
schedulable <- True
break
end if
end for
if not schedulable:
return False
end if
end for
return True
See also
[Inam2548:2011] formula (8).
Get i-th Task instance (\(t_i\)).
Parameters: | i – The index of system task starting from 0. |
---|---|
Returns: | Instance of Task. |
It determines if the writer finishes first, because the reader has to wait due to its priority in case of overlapped but not time-traveling execution (\(wait( t_w (i) \rightarrow t_r (j))\)).
Parameters: |
|
---|
See also
[Feiertag:08] formula (5)