Abstract
This paper shows how a recently introduced class of applications can be solved by constraint programming. This new type of application is due to the emergence of special real-time systems, enjoying increasing popularity in such diverse areas as automotive electronics and aerospace industry. These real-time systems are time triggered in the sense that their overall behavior is globally controlled by a recurring clock tick. For this off-line scheduling problem a potentially indefinite, periodic processing has to be mapped onto a single time window of a fixed length. We make this new class of applications amenable to constraint programming. We describe which traditional scheduling and realtime computing techniques led to success and which failed when confronted with a large-scale application of this type. Global constraints were used to reduce memory consumption and to speed up computation. An elaborate heuristic, borrowed from Operations Research, was employed to solve the problem. Furthermore, we show that mere serialization is sufficient to find a valid schedule. The actual implementation was done in the concurrent constraint programming language Oz. Introduction There is a growing number of distributed real-time applications whose processing must obey a strictly regular pattern, and so must the communication involved. Exactly for this type of application, a particular class of architectures has been devised, the so-called time-triggered architecture [12]. The term time triggered refers to the fact that the overall behavior of the system is controlled by a recurring clock tick, the only event which may invoke any action. Time-triggered architectures fit especially the needs of safety-critical applications. This special type of architecture proved to be successful in such diverse areas as automotive electronics and aerospace industry. Being able to compute an appropriate pre-runtime schedule automatically is the major challenge for a time-triggered architecture. What makes this specific off-line scheduling problem somewhat untypical is that a potentially indefinite, periodic processing has to be mapped onto a single time window. This time window determines the overall behavior of the system. Take a thermostat process T10, transmitting at a frequency of 10Hz the particular temperature chosen to a controller C10. Let this controller respond with exactly the same frequency, reporting potential malfunctioning. This induces a cyclic dependency which is explicitly allowed. If two application processes are allocated to different processors, then the only way for them to communicate with each other is a common data bus. All inter-processor messages must therefore be broadcasted through this data bus. A further restriction is that this bus is not able to transmit more than one message at a time. Let us furthermore assume that there is a second controller, call it C20, which gets at a frequency of 20Hz fresh data from a certain sensor S20. In this case, however, the communication is one-way only. We assume that S20 and C20 are hosted by different processors. In particular, let S20 reside on the same processor as T10, whileC20 shares its host with C10. The off-line scheduling problem then consists in mapping these quite different communication patterns onto a single time window, with no preemption being allowed. When repeated indefinitely, this time window should produce the intended overall behavior. Fig. 1 depicts a proper time window which does achieve this.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.