Propagation Module

Event model propagation algorithms.

Copyright (C) 2007-2017 Jonas Diemer, Philip Axer, Johannes Schlatow
TU Braunschweig, Germany
All rights reserved.
See LICENSE file for copyright and license details.
Authors:
  • Jonas Diemer
  • Philip Axer
  • Johannes Schlatow

Description

class pycpa.propagation.BusyWindowPropagationEventModel(task, task_results, nonrecursive=True)[source]

Derive an output event model from busy window and in_event_model (used as reference). Typically provides better results than JitterPropagationEventModel.

This results from Theorems 1, 2 and 3 from [Schliecker2008].

class pycpa.propagation.JitterBminPropagationEventModel(task, task_results, nonrecursive=True)[source]

Derive an output event model from response time jitter, the b_min as well as the in_event_model (used as reference).

Uses a reference to task.deltamin_func

bmin(n)[source]

minimum production time for n events at the output

class pycpa.propagation.JitterOffsetPropagationEventModel(task, task_results, nonrecursive=True)[source]
Derive an output event model from response time jitter
and in_event_model (used as reference). Also calculates the offset attribute.

This corresponds to Equations 1 (non-recursive) and 2 (recursive from [Schliecker2009] This is equivalent to Equation 5 in [Henia2005] or Equation 4.6 in [Richter2005].

Uses a reference to task.deltamin_func

class pycpa.propagation.JitterPropagationEventModel(task, task_results, nonrecursive=True)[source]
Derive an output event model from response time jitter
and in_event_model (used as reference).

This corresponds to Equations 1 (non-recursive) and 2 (recursive from [Schliecker2009] This is equivalent to Equation 5 in [Henia2005] or Equation 4.6 in [Richter2005].

Uses a reference to task.deltamin_func

class pycpa.propagation.OptimalPropagationEventModel(task, task_results, nonrecursive=True)[source]

Optimal event model based on jitter and busy_window propagation. For some schedulers, such as FIFO and EDF neither busy_window nor jitter propagation is optimal. This will try both and chooses the best result.

class pycpa.propagation.SPNPBusyWindowPropagationEventModel(task, task_results, nonrecursive=True)[source]

Performs standard busy window propagation but additionally calculates the minimum distance to any preceding event of a given task.

This corresponds to Def. 2 from [Rox2010].