On the development of reactive systems
Logics and models of concurrent systems
Theoretical Computer Science
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
Journal of the ACM (JACM)
Compilation techniques for parallel systems
Parallel Computing - Special Anniversary issue
Automatic Distribution of Reactive Systems for Asynchronous Networks of Processors
IEEE Transactions on Software Engineering
Information and Computation
Real-Time Systems: Design Principles for Distributed Embedded Applications
Real-Time Systems: Design Principles for Distributed Embedded Applications
A Calculus of Communicating Systems
A Calculus of Communicating Systems
Priority Inheritance Protocols: An Approach to Real-Time Synchronization
IEEE Transactions on Computers
Execution of Distributed Reactive Systems
Euro-Par '95 Proceedings of the First International Euro-Par Conference on Parallel Processing
An Algorithm for Reducing Binary Branchings
Proceedings of the 15th Conference on Foundations of Software Technology and Theoretical Computer Science
"On the Fly" Verification of Behavioural Equivalences and Preorders
CAV '91 Proceedings of the 3rd International Workshop on Computer Aided Verification
From simulink to SCADE/lustre to TTA: a layered approach for distributed embedded applications
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Synchronous Distribution of SIGNAL Programs
HICSS '96 Proceedings of the 29th Hawaii International Conference on System Sciences Volume 1: Software Technology and Architecture
Compositional design of isochronous systems
Proceedings of the conference on Design, automation and test in Europe
Multi-task Implementation of Multi-periodic Synchronous Programs
Discrete Event Dynamic Systems
Compositional design of isochronous systems
Science of Computer Programming
Programming parallelism with futures in lustre
Proceedings of the tenth ACM international conference on Embedded software
Hi-index | 0.00 |
Many embedded reactive programs perform computations at different rates, while still requiring the overall application to satisfy very tight temporal constraints. We propose a method to automatically distribute programs such that the obtained parts can be run at different rates, which we call rate desynchronization. We consider general programs whose control structure is a finite state automaton and with a DAG of actions in each state. The motivation is to take into account long-duration tasks inside the programs: these are tasks whose execution time is long compared to the other computations in the application, and whose maximal execution rate is known and bounded. Merely scheduling such a long duration task at a slow rate would not work since the whole program would be slowed down if compiled into sequential code. It would thus be impossible to meet the temporal constraints, unless such long duration tasks could be desynchronized from the remaining computations. This is precisely what our method achieves: it distributes the initial program into several parts, so that the parts performing the slow computations can be run at an appropriate rate, therefore not impairing the global reaction time of the program. We present in detail our method, all the involved algorithms, and a small running example. We also compare our method with the related work.