A hierarchical coordination language for interacting real-time tasks

We designed and implemented a new programming language called Hierarchical Timing Language (HTL) for hard realtime systems. Critical timing constraints are specified within the language,and ensured by the compiler. Programs in HTL are extensible in two dimensions without changing their timing behavior: new program modules can be added, and individual program tasks can be refined. The mechanism supporting time invariance under parallel composition is that different program modules communicate at specified instances of time. Time invariance under refinement is achieved by conservative scheduling of the top level. HTL is a coordination language, in that individual tasks can be implemented in "foreign" languages. As a case study, we present a distributed HTL implementation of an automotive steer-by-wire controller.

[1]  Frédéric Boussinot,et al.  The ESTEREL language , 1991, Proc. IEEE.

[2]  Thomas A. Henzinger,et al.  Time-Safety Checking for Embedded Programs , 2002, EMSOFT.

[3]  Thomas A. Henzinger,et al.  A programmable microkernel for real-time systems , 2005, VEE '05.

[4]  Thomas A. Henzinger,et al.  The embedded machine: predictable, portable real-time code , 2002, PLDI '02.

[5]  Thierry Gautier,et al.  Programming real-time applications with SIGNAL , 1991, Proc. IEEE.

[6]  Thomas A. Henzinger,et al.  Giotto: a time-triggered language for embedded programming , 2001, Proc. IEEE.

[7]  David E. Culler,et al.  The nesC language: A holistic approach to networked embedded systems , 2003, PLDI.

[8]  Emilia Farcas,et al.  Transparent distribution of real-time components based on logical execution time , 2005, LCTES.

[9]  Thomas A. Henzinger,et al.  Event-Driven Programming with Logical Execution Times , 2004, HSCC.

[10]  Alberto Sangiovanni-Vincentelli,et al.  Hierarchical Timing Language , 2006 .

[11]  Thomas A. Henzinger,et al.  Hybrid Systems: Computation and Control , 1998, Lecture Notes in Computer Science.

[12]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[13]  John A. Clark,et al.  Holistic schedulability analysis for distributed hard real-time systems , 1994, Microprocess. Microprogramming.

[14]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[15]  Edward A. Lee,et al.  Timed multitasking for real-time embedded software , 2003 .

[16]  Kwei-Jay Lin,et al.  Building flexible real-time systems using the Flex language , 1991, Computer.

[17]  Alan Burns,et al.  Concurrent programming , 1980, Operating Systems Engineering.

[18]  Giorgio Buttazzo,et al.  Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications , 1997 .