Zain A. H. Hammadeh, Tobias Franz, Olaf Maibaum, Andreas Gerndt, - - PowerPoint PPT Presentation

zain a h hammadeh tobias franz olaf maibaum andreas
SMART_READER_LITE
LIVE PREVIEW

Zain A. H. Hammadeh, Tobias Franz, Olaf Maibaum, Andreas Gerndt, - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

Event-Driven Multithreading Execution Platform for Real-Time On-Board Software Systems

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 1

Zain A. H. Hammadeh, Tobias Franz, Olaf Maibaum, Andreas Gerndt, Daniel Lüdtke

slide-2
SLIDE 2

Sensor Data Fusion in BIRD (TET, BIROS) AOCS

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 2

Single-core Many sensors Launch: 2001

Bispectral Infra-Red Detection

On-board data processing Main developer

slide-3
SLIDE 3

Sensor Data Fusion in BIRD (TET, BIROS) AOCS

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 3

  • Msg. A

F(A)

Sensor A Sensor B Sensor C

  • Msg. B

F(B) E= F(A,B,C) F(D,E) f(A) Sensor D

  • Msg. D
  • Msg. C

1 5 0, final 1 1 1

  • Msg. E

f(B) f(D,E)

1 1

slide-4
SLIDE 4

Introduction: ASAP scheduling

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 4

MsgA MsgB MsgC MsgD MsgA MsgB MsgC MsgD

F(C) F(B) F(A) F(D,E) E=F(A,B,C) F(C) F(B) F(A)

Conservative scheduling in one code block: Tasks with ASAP scheduling:

F(D,E) E=F(A,B,C)

t t

slide-5
SLIDE 5
  • Tasking Framework
  • API
  • Activation model
  • Call semantics
  • Execution model
  • Scheduling and priority handling
  • Tasking Modeling Language (TML)
  • Outlook & Conclusion

Outline

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 5

slide-6
SLIDE 6

Tasking Framework: Elements

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 6

  • Msg. A

F(A)

Sensor A Sensor B Sensor C

  • Msg. B

F(B) E= F(A,B,C) F(D,E) f(A) Sensor D

  • Msg. D
  • Msg. C

1 5 0, final 1 1 1

  • Msg. E

f(B) f(D,E)

1 1

TaskChannel TaskEvent Task TaskInput

slide-7
SLIDE 7

Tasking Framework: API

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 7

C++

Input Channel Event Task Scheduler InputImpl TaskImpl InputArray TaskProvider

slide-8
SLIDE 8

Tasking Framework: Sequence

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 8

  • Msg. A

F(A)

Sensor A Sensor B Sensor C

  • Msg. B

F(B) E= F(A,B,C) F(D,E) f(A) Sensor D

  • Msg. D
  • Msg. C

1 5 0, final 1 1 1

  • Msg. E

f(B) f(D,E)

1 1

TaskChannel Task TaskInput thread

push() notifyInput() activate() perform()

slide-9
SLIDE 9

Tasking Framework: Sequence cont’d

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 9

TaskChannel Input Task Scheduler

push notifyInput activate isActivated* perform

Executor

perform synchronizeStart reset synchronizeStart execute synchronizeEnd synchronizeEnd reset reset

slide-10
SLIDE 10

Activation model

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 10

Task

in1 in2 in0 and

Task

in1,final in2,final in0,final

  • r

Task

in1 in2,final in0

Period Relative-time Task 𝜐1 Task 𝜐2

in1,final in0

SpW

time

1 2 3

Relative-time

Relative-time

slide-11
SLIDE 11

Call semantics

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 11

𝜐0

in0

ch0 𝜐1

in1

ch1 𝜐2

in2

ch2 1 Asynchronous (Default)

𝜐0

𝜐1 𝜐2

𝜐0

𝜐1 𝜐2

𝜐0

𝜐1 𝜐2 𝜐0

in0

ch0 𝜐1

in1

ch1 𝜐2

in2

ch2 2 Synchronous (Tasking::Group)

𝜐0

𝜐1 𝜐2

slide-12
SLIDE 12
  • Tasking Framework
  • API
  • Activation model
  • Call semantics
  • Execution model
  • Scheduling and priority handling
  • Tasking Modeling Language (TML)
  • Outlook & Conclusion

Outline

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 12

slide-13
SLIDE 13

Execution Platform

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 13

Platform Specific

SchedulerExecutionModel

Mutex Signaler

ClockExecutionModel

slide-14
SLIDE 14

Execution model

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 14

Scheduler

Task0 Task1 Taskn FIFO LIFO SPNP Executors (threads) Scheduling policy

Dormant Running Waiting create() wait(&cond_var) signal() join()

ex1 exm Scheduling policies: Queue Thread’s life cycle:

  • Work-conserving scheduling
  • The load is balanced on the

available executors

slide-15
SLIDE 15

Scheduling and priority handling

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 15

Scheduler1

Task0 Task1 Taskn1 Scheduling policy ex1 exm1 Queue Global scheduling

Scheduler2

Task0 Task1 Taskn2 Scheduling policy ex1 exm2 Queue

Scheduler3

Task0 Task1 Taskn3 Scheduling policy ex1 exm3 Queue

Scheduler4

Task0 Task1 Taskn4 Scheduling policy ex1 exm4 Queue

Application

Partitioned scheduling Global scheduling

slide-16
SLIDE 16
  • Tasking Framework
  • API
  • Activation model
  • Call semantics
  • Execution model
  • Scheduling and priority handling
  • Tasking Modeling Language (TML)
  • Outlook & Conclusion

Outline

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 16

slide-17
SLIDE 17

Tasking Modelling Language (TML)

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 17

  • Advanced editor with modeling support +

Integration into Eclipse IDE

  • Modeling Workflow
  • 1. Data types
  • 2. Component types
  • 3. Component connection
  • Artifact generation
slide-18
SLIDE 18
  • Tasking Framework
  • API
  • Activation model
  • Call semantics
  • Execution model
  • Scheduling and priority handling
  • Tasking Modeling Language (TML)
  • Outlook & Conclusion

Outline

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 18

slide-19
SLIDE 19
  • Work stealing
  • Open source:
  • introducing releases
  • contribution rules
  • legal regulations
  • Bare-metal

Outlook

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 19

slide-20
SLIDE 20
  • 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?

Conclusion

> Tasking Framework > Zain A. H. Hammadeh > OSPERT2019 > 09.07.2019 DLR.de • Chart 20

ResearchGate: OSS Website: https://www.dlr.de/sc/srv