Struct rta_for_fps_lib::system::System [−][src]
pub struct System<'a> { /* fields omitted */ }
Expand description
Type representing a System of Servers
Implementations
Create a new System from a slice of Servers, indexed by their priority, lowest index being the highest priority
Get a slice reference to the systems servers
pub fn aggregated_higher_priority_demand_curve_iter<'b, CSDCI>(
constrained_demand_curves: CSDCI
) -> impl CurveIterator<CurveKind = HigherPriorityServerDemand> + Clone + 'b where
CSDCI::Item: CurveIterator<CurveKind = ConstrainedServerDemand> + Clone + 'b,
CSDCI: IntoIterator,
pub fn aggregated_higher_priority_demand_curve_iter<'b, CSDCI>(
constrained_demand_curves: CSDCI
) -> impl CurveIterator<CurveKind = HigherPriorityServerDemand> + Clone + 'b where
CSDCI::Item: CurveIterator<CurveKind = ConstrainedServerDemand> + Clone + 'b,
CSDCI: IntoIterator,
Calculate the aggregated higher priority demand curve
by aggregating the aggregated demand curves of all Servers with higher priority
(lower value) than index
.
Based on the papers Definition 12.
pub fn aggregated_higher_priority_actual_execution_curve_iter<'b>(
&'b self,
server_index: usize
) -> AggregationIterator<Box<dyn ClonableCurveIterator<'b, CurveKind = ActualServerExecution> + 'b>, <ActualServerExecution as CurveType>::WindowKind>
Calculate the system wide hyper period
accounting for all servers and tasks
up to and including the server with priority server_index
Section 7.1 §2 Sentence 3, allows to exclude lower priority servers from the swh period calculation, when analysing tasks of a server
pub fn original_unconstrained_server_execution_curve_iter(
&self,
server_index: usize
) -> impl CurveIterator<CurveKind = UnconstrainedServerExecution> + Clone + '_
pub fn original_unconstrained_server_execution_curve_iter(
&self,
server_index: usize
) -> impl CurveIterator<CurveKind = UnconstrainedServerExecution> + Clone + '_
Calculate the unconstrained execution curve
for the server with priority index
.
See Definition 13. of the paper for reference
pub fn fixed_unconstrained_server_execution_curve_iter(
&self,
server_index: usize
) -> impl CurveIterator<CurveKind = UnconstrainedServerExecution> + Clone + '_
pub fn original_actual_execution_curve_iter(
&self,
server_index: usize
) -> impl CurveIterator<CurveKind = ActualServerExecution> + Clone + '_
pub fn original_actual_execution_curve_iter(
&self,
server_index: usize
) -> impl CurveIterator<CurveKind = ActualServerExecution> + Clone + '_
Calculate the Constrained Execution Curve using Algorithm 4. from the paper TODO more detail, what do the parameters mean
Panics
When a server is not guaranteed its capacity every interval
pub fn fixed_actual_execution_curve_iter(
&self,
server_index: usize
) -> impl CurveIterator<CurveKind = ActualServerExecution> + Clone + '_