-
Notifications
You must be signed in to change notification settings - Fork 63
Timing Analysis
Martin Schoeberl edited this page Oct 24, 2019
·
9 revisions
Given a time unit c,
- H3 reacts sporadically >= 100c (e.g., 10, 120, 230, ...)
- H4 reacts periodically with period 50c (e.g., 0, 50, 100, ...)
- Delay adds 100c to the timestamp of each incoming event
- Actuate shall start executing H5 before r.t. clock exceeds time stamp of incoming events
+--------+
| | +--------+ +-------+ +---------+
| H3 +----------> H1 | | | | |
| | | +-----> Delay +-----> Actuate |
+--------+ +-----> H2 | | 100 | | (H5) |
| +--------+ +-------+ +---------+
|
+--------+ |
| | |
| H4 +----+
| |
+--------+
We can construct a dependency graph:
H3 ---> H1 ---> H2 ---> H5
|
H4 ---------+
A feasible schedule requires that:
- WCET(H3) + WCET(H1) + WCET(H2) <= 100c
- WCET(H4) + WCET(H1) + WCET(H2) <= 100c
T = 1s C = 300ms
+---------+ +----------+
| | | Corr |
| GPS +------> r1 +----+
| | | | |
+---------+ +----------+ | +----------------+ D = 100ms
| | | +--------+
T = 100ms +-----> r2 | | |
+---------+ | Ctrl +--------> Act. |
| | +----------------> r3 | | |
| IMU +-----------+ | | +--------+
| | +----------------+
+---------+
This example needs the following:
- r3 needs to preempt r1.
- The event from GPS needs a delay of 300ms between Corr and Ctrl, so Ctrl never sees an older event.
If we want to avoid preemption, as this hurts WCET analysis:
- Split reactor Corr. into three (or more) reactors and add a delay of 100 ms after each one.
For both solutions, the scheduler needs a "safe to process" analysis for reaction r3 to execute while r1 is still executing for an older time-stamped event.
Preemption can be avoided when there are enough cores (or hardware threads in PRET) available to execute r1 and r3 concurrently.