LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Programming and verifying critical systems by means of the synchronous data-flow language LUSTRE
SIGSOFT '91 Proceedings of the conference on Software for citical systems
A practitioner's handbook for real-time analysis
A practitioner's handbook for real-time analysis
Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment
Journal of the ACM (JACM)
Synchronous Programming of Reactive Systems
Synchronous Programming of Reactive Systems
Deadline Scheduling for Real-Time Systems: Edf and Related Algorithms
Deadline Scheduling for Real-Time Systems: Edf and Related Algorithms
Priority Inheritance Protocols: An Approach to Real-Time Synchronization
IEEE Transactions on Computers
A Protocol for Loosely Time-Triggered Architectures
EMSOFT '02 Proceedings of the Second International Conference on Embedded Software
EMSOFT '02 Proceedings of the Second International Conference on Embedded Software
Improving Wait-Free Algorithms for Interprocess Communication in Embedded Real-Time Systems
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Specification and verification of concurrent systems in CESAR
Proceedings of the 5th Colloquium on International Symposium on Programming
Synchronous Programming of Reactive Systems
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
Automatic verification of Pipelined Microprocessor Control
CAV '94 Proceedings of the 6th International Conference 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
Integrating Model-Based Design and Preemptive Scheduling in Mixed Time- and Event-Triggered Systems
ECRTS '04 Proceedings of the 16th Euromicro Conference on Real-Time Systems
A generic approach to schedulability analysis of real-time tasks
Nordic Journal of Computing
Efficient embedded software design with synchronous models
Proceedings of the 5th ACM international conference on Embedded software
Proceedings of the 5th ACM international conference on Embedded software
EMSOFT '06 Proceedings of the 6th ACM & IEEE International conference on Embedded software
Migration of legacy software towards correct-by-construction timing behavior
FOCS'10 Proceedings of the 16th Monterey conference on Foundations of computer software: modeling, development, and verification of adaptive systems
Synchronous programming of device drivers for global resource control in embedded operating systems
ACM Transactions on Embedded Computing Systems (TECS) - Special section on ESTIMedia'12, LCTES'11, rigorous embedded systems design, and multiprocessor system-on-chip for cyber-physical systems
Task implementation of synchronous finite state machines
DATE '12 Proceedings of the Conference on Design, Automation and Test in Europe
Cyber-physical system design contracts
Proceedings of the ACM/IEEE 4th International Conference on Cyber-Physical Systems
Hi-index | 0.00 |
We study the implementation of a synchronous program as a set of multiple tasks running on the same computer, and scheduled by a real-time operating system using some preemptive scheduling policy, such as fixed priority or earliest-deadline first. Multitask implementations are necessary, for instance, in multiperiodic applications, when the worst-case execution time of the program is larger than its smallest period. In this case, a single-task implementation violates the schedulability assumption and, therefore, the synchrony hypothesis does not hold. We are aiming at semantics-preserving implementations, where, for a given input sequence, the output sequence produced by the implementation is the same as that produced by the original synchronous program, and this under all possible executions of the implementation. Straightforward implementation techniques are not semantics-preserving. We present an intertask communication protocol, called DBP, that is semantics-preserving and memory-optimal. DBP guarantees semantical preservation under all possible triggering patterns of the synchronous program: thus, it is applicable not only to time-, but also event-triggered applications. DBP works under both fixed priority and earliest-deadline first scheduling. DBP is a nonblocking protocol based on the use of intermediate buffers and manipulations of write-to/read-from pointers to these buffers: these manipulations happen upon arrivals, rather than executions of tasks, which is a distinguishing feature of DBP. DBP is memory-optimal in the sense that it uses as few buffers as needed, for any given triggering pattern. In the worst case, DBP requires, at most, N + 2 buffers for each writer, where N is the number of readers for this writer.