DLR.de • Chart 1 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Event-Driven Multithreading Execution Platform for Real-Time On-Board Software Systems Zain A. H. Hammadeh, Tobias Franz, Olaf Maibaum, Andreas Gerndt, Daniel Lüdtke
DLR.de • Chart 2 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Sensor Data Fusion in BIRD (TET, BIROS) AOCS B ispectral I nfra- R ed D etection Single-core Many sensors On-board data processing Main developer Launch: 2001
DLR.de • Chart 3 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Sensor Data Fusion in BIRD (TET, BIROS) AOCS F(A) f(A) Msg. A 1 Sensor A 1 Msg. C 5 Sensor C E= Msg. E F(A,B,C) 0, final 1 Msg. B F(B) f(B) 1 Sensor B 1 Msg. D F(D,E) f(D,E) 1 Sensor D
DLR.de • Chart 4 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Introduction: ASAP scheduling Conservative scheduling in one code block: MsgA MsgB MsgD MsgC t F(A) F(B) F(C) E=F(A,B,C) F(D,E) Tasks with ASAP scheduling: MsgD MsgA MsgB MsgC t F(A) F(B) F(C) E=F(A,B,C) F(D,E)
DLR.de • Chart 5 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Outline • Tasking Framework • API • Activation model • Call semantics • Execution model • Scheduling and priority handling • Tasking Modeling Language (TML) • Outlook & Conclusion
DLR.de • Chart 6 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Tasking Framework: Elements TaskChannel Task F(A) f(A) Msg. A 1 Sensor A TaskInput 1 TaskEvent Msg. C 5 Sensor C E= Msg. E F(A,B,C) 0, final 1 Msg. B F(B) f(B) 1 Sensor B 1 Msg. D F(D,E) f(D,E) 1 Sensor D
DLR.de • Chart 7 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Tasking Framework: API C++ Event Channel InputImpl Scheduler Input InputArray Task TaskImpl TaskProvider
DLR.de • Chart 8 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 thread Tasking Framework: Sequence TaskChannel TaskInput Task perform() F(A) f(A) Msg. A 1 Sensor A notifyInput() push() activate() 1 Msg. C 5 Sensor C E= Msg. E F(A,B,C) 0, final 1 Msg. B F(B) f(B) 1 Sensor B 1 Msg. D F(D,E) f(D,E) 1 Sensor D
DLR.de • Chart 9 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Tasking Framework: Sequence cont’d Executor TaskChannel Input Task Scheduler push notifyInput activate isActivated* perform perform synchronizeStart synchronizeStart execute synchronizeEnd synchronizeEnd reset reset reset
DLR.de • Chart 10 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Activation model 1 2 in 0 in 0 ,final Task Task in 1 and in 1 ,final or in 2 in2,final 3 in 0 Task in 1 Period in 2 ,final Relative-time Relative-time SpW Task 𝜐 1 Relative-time time in 1 ,final Task 𝜐 2 in 0
DLR.de • Chart 11 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Call semantics 1 Asynchronous (Default) 𝜐 0 𝜐 1 𝜐 2 ch 0 ch 1 ch 2 in 0 in 1 in 2 𝜐 0 𝜐 0 𝜐 1 𝜐 1 𝜐 2 𝜐 2 2 Synchronous (Tasking::Group) 𝜐 0 𝜐 1 𝜐 2 ch 0 ch 1 ch 2 in 0 in 1 in 2 𝜐 0 𝜐 0 𝜐 1 𝜐 1 𝜐 2 𝜐 2
DLR.de • Chart 12 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Outline • Tasking Framework • API • Activation model • Call semantics • Execution model • Scheduling and priority handling • Tasking Modeling Language (TML) • Outlook & Conclusion
DLR.de • Chart 13 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Execution Platform Platform Specific SchedulerExecutionModel Mutex Signaler ClockExecutionModel
DLR.de • Chart 14 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Execution model Executors (threads) Scheduler • Work-conserving scheduling • Task 0 The load is balanced on the Scheduling available executors policy Task 1 Thread’s life cycle: wait(&cond_var) ex 1 ex m Queue Task n create() Dormant Running Waiting Scheduling policies: signal() join() SPNP FIFO LIFO
DLR.de • Chart 15 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Scheduling and priority handling Partitioned Global scheduling scheduling Application Global Scheduler1 Scheduler2 scheduling Task 0 Task 0 Scheduling Scheduling policy policy Task 1 Task 1 ex 1 ex m1 ex 1 ex m2 Queue Queue Task n1 Task n2 Scheduler3 Scheduler4 Task 0 Task 0 Scheduling Scheduling policy policy Task 1 Task 1 ex 1 ex m3 ex 1 ex m4 Queue Queue Task n3 Task n4
DLR.de • Chart 16 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Outline • Tasking Framework • API • Activation model • Call semantics • Execution model • Scheduling and priority handling • Tasking Modeling Language (TML) • Outlook & Conclusion
DLR.de • Chart 17 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Tasking Modelling Language (TML) • Advanced editor with modeling support + Integration into Eclipse IDE • Modeling Workflow 1. Data types 2. Component types 3. Component connection • Artifact generation
DLR.de • Chart 18 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Outline • Tasking Framework • API • Activation model • Call semantics • Execution model • Scheduling and priority handling • Tasking Modeling Language (TML) • Outlook & Conclusion
DLR.de • Chart 19 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Outlook • Work stealing • Open source: • introducing releases • contribution rules • legal regulations • Bare-metal
DLR.de • Chart 20 > Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 Conclusion • Tasking Framework • software development library • event-driven multithreading execution platform • C++ • compatible with the POSIX-based RTOS • dedicated for data-driven on-board software systems • Interested? ResearchGate: OSS Website: https://www.dlr.de/sc/srv
Recommend
More recommend