a time triggered implementation model for real time
play

A time-triggered implementation model for real-time distributed - PowerPoint PPT Presentation

A time-triggered implementation model for real-time distributed systems Virginia Papailiopoulou Dumitru Potop-Butucaru Yves Sorel INRIA Paris-Rocquencourt SYNCHRON 2011 Dammarie-les-Lys, France November 28th - December 2nd 2011 Outline


  1. A time-triggered implementation model for real-time distributed systems Virginia Papailiopoulou Dumitru Potop-Butucaru Yves Sorel INRIA Paris-Rocquencourt SYNCHRON 2011 Dammarie-les-Lys, France November 28th - December 2nd 2011

  2. Outline • Motivation – Avionics embedded computing systems – Integrated Modular Avionics (IMA) • ARINC 653 overview – Focus on temporal aspects • Time-triggered implementation model – Reservation/Scheduling tables • Proposition: time-triggered IMA – Time-triggered IMA implementation November 28th-December 2nd - Dammarie-les-Lys, France 2 SYNCHRON 2011

  3. Outline • Motivation – Avionics embedded computing systems – Integrated Modular Avionics (IMA) • ARINC 653 overview – Focus on temporal aspects • Time-triggered implementation model – Reservation/Scheduling tables • Proposition: time-triggered IMA – Time-triggered IMA implementation November 28th-December 2nd - Dammarie-les-Lys, France 3 SYNCHRON 2011

  4. Integrated Modular Avionics (IMA) • Better use of hardware resources • Lower design/maintenance costs integration of different multiple applications criticality levels in the same computer different safety/ LevelB data communications with reliability multiplexed network requirements LevelA LevelC processor LevelC LevelA LevelB time partitioning P 2 P 1 P 2 P 3 ARINC 653 static TDM scheduling w 1 w 2 w 3 w 4 0 robust partitioning 2-level scheduling space partitioning no unspecified communication no side-effects November 28th-December 2nd - Dammarie-les-Lys, France 4 SYNCHRON 2011

  5. Integrated Modular Avionics (IMA) • Inside each partition: – Partition-level scheduler (L1) within TDM slots allocated by the static scheduler (L0) – Any scheduling policy can be used (RR, EDF , ...) – ARINC 653 • priority-preemptive L1 scheduler – easy porting of existing software November 28th-December 2nd - Dammarie-les-Lys, France 5 SYNCHRON 2011

  6. Motivation • Inside each partition: – Partition-level scheduler (L1) within TDM slots allocated by the static scheduler (L0) – Any scheduling policy can be used (RR, RM, EDF , ...) – ARINC 653 • priority-preemptive L1 scheduler – easy porting of existing software • Dynamic scheduling + static TDM – many TDM slots of short duration ➔ increased cost – interruption at the end of TDM slots ➔ worse deadline guarantees November 28th-December 2nd - Dammarie-les-Lys, France 6 SYNCHRON 2011

  7. Proposition • Fully static scheduling (L0+L1) – Time-triggered process scheduling within partition allocated TDM slots • Conditional scheduling tables – Precise start dates – Execution condition easy and predictable implementations P1 P1 P2 simple model for complex systems t 1 if c 1 if ¬c 1 t 2 then f then g better use of resources t 3 if c 3 then h automatic generation from data-flow t 4 if c 4 then f then f formalisms, e.g. SCADE or Simulink November 28th-December 2nd - Dammarie-les-Lys, France 7 SYNCHRON 2011

  8. Outline • Motivation – Avionics embedded computing systems – Integrated Modular Avionics (IMA) • ARINC 653 overview – Focus on temporal aspects • Time-triggered implementation model – Reservation/Scheduling tables • Proposition: time-triggered IMA – Time-triggered IMA implementation November 28th-December 2nd - Dammarie-les-Lys, France 8 SYNCHRON 2011

  9. ARINC 653 core module Partition for Partition for Partition for Application Application Application Software 1 Software 2 Software 3 A P E X O/S HW November 28th-December 2nd - Dammarie-les-Lys, France 9 SYNCHRON 2011

  10. ARINC 653 core module process 1 process 1 process 1 Partition for Partition for Partition for process 2 Application process 2 Application process 2 Application Software 1 Software 2 process 3 Software 3 process 3 process 3 A P E X P1(L1) P2(L1) P3(L1) O/S module scheduler (L0) HW November 28th-December 2nd - Dammarie-les-Lys, France 10 SYNCHRON 2011

  11. ARINC 653 - Partitions • Static allocation of resources – One partition ↔ one application • Static scheduling ➔ TDM – Fixed time windows ➔ exclusive access to resources One partition ➔ several windows – MTF = k × LCM ( T i , ..., T n ) T P1 Partition 1 Partition 2 Partition 4 Partition 3 Partition 2 Partition 4 Partition 1 Pa window 1 w2 w3 w5 w6 w4 Major Time Frame (MTF n ) November 28th-December 2nd - Dammarie-les-Lys, France 11 SYNCHRON 2011

  12. ARINC 653 - Processes • Application functional behavior • Priority preemptive scheduling priority g h h f q a w 1 preemption 0 duration release start Partition 1 Partition 2 Partition 4 Partition 3 Partition 2 Partition 4 Partition 1 Pa window 1 w2 w3 w5 w6 w4 Major Time Frame (MTF n ) November 28th-December 2nd - Dammarie-les-Lys, France 12 SYNCHRON 2011

  13. ARINC 653 - MTF configuration • According to partition and process requirements T F =20 T H =20 d F =5 d H =5 F H T P1 =20 P 1 D P1 =10 G T G =40 T P2 =40 P 2 d G =10 D P2 =10 T P1 T P1 (P 2 ) (P 1 ) (P 1 ) W 2 W 3 W 1 D H D F D H D F D G 0 5 15 20 25 35 40(=MTF) D P1 D P1 November 28th-December 2nd - Dammarie-les-Lys, France 13 SYNCHRON 2011

  14. ARINC 653 - MTF configuration • Not always unique T F =20 T H =20 d F =3 d H =5 F H T P1 =20 P 1 D P1 =8 G T G =40 T P2 =40 P 2 d G =10 D P2 =10 (P 2 ) (P 1 ) (P 1 ) W 2 W 3 W 1 D F D F D H D H D G 23 0 3 15 20 25 35 40(=MTF) November 28th-December 2nd - Dammarie-les-Lys, France 14 SYNCHRON 2011

  15. ARINC 653 - Structure of an implementation • Configuration file (for the O/S) – Module configuration • window allocation to partitions • memory management • module scheduling (window start dates + durations) • Main programs – One for each partition • processes creation • communication ports creation • partition scheduling November 28th-December 2nd - Dammarie-les-Lys, France 15 SYNCHRON 2011

  16. Outline • Motivation – Avionics embedded computing systems – Integrated Modular Avionics (IMA) • ARINC 653 overview – Focus on temporal aspects • Time-triggered implementation model – Reservation/Scheduling tables • Proposition: time-triggered IMA – Time-triggered IMA implementation November 28th-December 2nd - Dammarie-les-Lys, France 16 SYNCHRON 2011

  17. Time-triggered implementation model non-partitioned resources P 1 P 2 P 3 Bus F 1 @true 0 send(P 1 ,inA)@true 1 send(P 3 ,inB)@true time 2 send(P 3 ,inA)@true F 2 @inA=true 3 F 3 @inB =false 4 N@inA 5 =false 6 M@true 7 • Periodic non-preemptive execution model non-preemptive • Table size = execution cycle duration • Operations with disjoint conditions can run concurrently • Data dependencies respected • No data race November 28th-December 2nd - Dammarie-les-Lys, France 17 SYNCHRON 2011

  18. Outline • Motivation – Avionics embedded computing systems – Integrated Modular Avionics (IMA) • ARINC 653 overview – Focus on temporal aspects • Time-triggered implementation model – Reservation/Scheduling tables • Proposition: time-triggered IMA – Time-triggered IMA implementation November 28th-December 2nd - Dammarie-les-Lys, France 18 SYNCHRON 2011

  19. Time-triggered IMA P1 P1 P2 consistent t 1 f@c 1 g@¬c 1 t 2 h@c 3 t 3 f@c 4 f@c • Table size = MTF • Each operation o i is associated to a partition P i • Slot reservation for window changes • Precomputed preemption – Allow for operations spanning over several windows – Multiple reservations per operation November 28th-December 2nd - Dammarie-les-Lys, France 19 SYNCHRON 2011

  20. Time-triggered implementation P1 P1 P2 t 1 f@c 1 g@¬c 1 t 2 h@c 3 t 3 f@c f@c 4 + APEX • For each partition – One aperiodic process/scheduled operation – One periodic process/slot change – Fixed priorities • higher priority given to periodic processes – Start dates fixed w.r.t. the partition period November 28th-December 2nd - Dammarie-les-Lys, France 20 SYNCHRON 2011

  21. Time-triggered implementation processes associated to slot changes and the start dates #include "local_definitions.c" PROCESS_ATTRIBUTE_TYPE* dates(int Di){ # of operations const int OpNum ; return # of start/end dates const int DNum ; {date_name[Di],slot_change, processes associated to operations date_stack,HI_PRIO,part_period, PROCESS_ATTRIBUTE_TYPE* op(int OPi){ date_duration,HARD}; return } {op_name[OPi],op_wrapper[OPi], const SYSTEM_TIME_TYPE slot_offset[DNum]; inter-partition ports creation op_stack[OPi],LO_PRIO,0, op_duration[OPi],HARD}; void init_inter_partition_ports() ; } PROCESS_ID_TYPE OP_PID[OpNum] ; int main() { RETURN_CODE_TYPE ret ; int d_i= DNum-1; PROCESS_ID_TYPE d_pid ; scheduler function void slot_change() { init_inter_partition_ports() ; initializations RETURN_CODE_TYPE ret ; for(int i=0;i<OpNum;i++) d_i = (d_i+1)%DNum ; CREATE_PROCESS(op(i),OP_PID+i,&ret); for(int i=0;i<OpNum;i++) { for(int i=0;i<DNum;i++) { if((op_start[d_i][i])()) CREATE_PROCESS(dates,&d_pid,&ret); START(OP_PID[i],&ret); DELAYED_START(d_pid, else if ((op_resume[d_i][i])()) slot_offset[i],&ret); partition execution RESUME(OP_PID[i],&ret); } else if ((op_suspend[d_i][i])()) SET_PARTITION_MODE(NORMAL,&ret); SUSPEND(OP_PID[i],&ret); return 0 ; } } } 1 2 November 28th-December 2nd - Dammarie-les-Lys, France 21 SYNCHRON 2011

Recommend


More recommend