SLIDE 21 Scheduling Strategies for Flow Preservation
◮ Single-core platforms
◮ One additional TaskContext
generated as a dispatcher
◮ It runs periodically at the base
period at the highest priority
◮ A scheduling table specifies the
- rder of exec. of non-periodic
components in the hyperperiod
◮ They are added as peers to the
dispatcher that triggers them according to the sched. table
◮ Single-CPU, multi-core platforms
◮ One dispatcher for core ◮ Enforcement of precedence
constraints by event signals
Activity
period: 0 priority: 25 void updateHook() { s4_step(); }
T ask3
10ms 20ms 30ms
T ask2 T ask1 t=10ms t=20ms t=30ms t=40ms t=50ms t=0 T ask2, T ask1, T ask3 T ask2 T ask2, T ask1 T ask2, T ask3 T ask2, T ask1 T ask2 activation time T ask2 E.E.
runs runs calls calls calls
Activity
period: 0 priority: 1
T ask1
runs
E.E. T ask3 E.E.
runs Activity period: 0 priority: 1 runs void updateHook() { //trigger peers according //to the scheduling table ... }
Dispatcher E.E.
peer peer peer
Activity
period: 10 priority: 49 calls
Deployment in a single core
void updateHook() { s1_step(); s5_step(); s3_step(); } void updateHook() { s2_step(); }
Generation of Flow-Preserving Orocos Implementations of Simulink/Scicos Models 21/23