Skip to Main content Skip to Navigation

Sheep in wolf's clothing: Implementation models for data-flow multi-threaded software

Abstract : Concurrent programming is notoriously difficult, especially in constrained embedded contexts. Threads, in particular, are wildly nondeterministic as a model of computation, and difficult to analyze in the general case. Fortunately, it is often the case that multi-threaded, semaphore-synchronized embedded software implements high-level functional specifications written in a deterministic data-flow language such as Scade or (safe subsets of) Simulink. We claim that in this case the implementation process should build not just the multi-threaded C code, but (first and foremost) a richer model exposing the dataflow organization of the computations performed by the implementation. From this model, the C code is extracted through selective pretty-printing, while knowledge of the data-flow organization facilitates analysis. We propose a language for describing such implementation models that expose the data-flow behavior (the sheep) hiding under the form of a multi-threaded program (the wolf). The language allows the representation of efficient implementations featuring pipelined scheduling and optimized memory allocation and synchronization. We show applicability on a large-scale industrial avionics case study and on a commercial many-core.
Document type :
Complete list of metadata

Cited literature [14 references]  Display  Hide  Download
Contributor : Dumitru Potop-Butucaru Connect in order to contact the contributor
Submitted on : Sunday, April 16, 2017 - 6:47:31 PM
Last modification on : Friday, January 21, 2022 - 3:15:33 AM
Long-term archiving on: : Monday, July 17, 2017 - 12:27:45 PM


Files produced by the author(s)


  • HAL Id : hal-01509314, version 1



Keryan Didier, Albert Cohen, Adrien Gauffriau, Amaury Graillat, Dumitru Potop-Butucaru. Sheep in wolf's clothing: Implementation models for data-flow multi-threaded software. [Research Report] RR-9057, Inria Paris. 2017, pp.31. ⟨hal-01509314⟩



Les métriques sont temporairement indisponibles