A Time-Aware Programming Framework for Constructing Predictable Real-Time Systems

Real-time systems need reliable guarantees for the satisfaction of their timing constraints. However, novel speed-up hardware architectures and software mechanism, which target improving average-case performances, ignore and sometimes worsen the ability to obtain guarantees. An alternative approach is the Logical Execution Time (LET) model, but there are some deficiencies in existing LET-based development tools. In this paper, we propose a novel LET-based time-aware programming framework called TipFrame. The framework introduces Servants to improve the responsiveness of LET-based periodic tasks further. The runtime makes behaviors in the system level consistent with the semantics of LET model for predictability. TipFrame implements in C language providing time-aware programming interfaces called TipFrame-C. The programming paradigm of TipFrame-C is described using an autopilot avionic control system. Evaluation results demonstrate that our approach is effective and efficient to construct LET-based real-time systems.

[1]  Matthieu Lemerre,et al.  The OASIS Kernel: A Framework for High Dependability Real-Time Systems , 2011, 2011 IEEE 13th International Symposium on High-Assurance Systems Engineering.

[2]  Chao Wang,et al.  Definitions of predictability for Cyber Physical Systems , 2016, J. Syst. Archit..

[3]  Stephen A. Edwards,et al.  The Case for the Precision Timed (PRET) Machine , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[4]  Cary R Spitzer,et al.  The avionics handbook , 2001 .

[5]  Carl Hewitt,et al.  What is Computation? Actor Model versus Turing's Model , 2012 .

[6]  Edward A. Lee The problem with threads , 2006, Computer.

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

[8]  David May,et al.  The XMOS XS1 Architecture , 2009 .

[9]  Hermann Kopetz The Time-Triggered Approach to Real-Time System Design , 1995 .

[10]  Hermann Kopetz,et al.  Event-Triggered Versus Time-Triggered Real-Time Systems , 1991, Operating Systems of the 90s and Beyond.

[11]  Yuanyuan Zhou,et al.  Learning from mistakes: a comprehensive study on real world concurrency bug characteristics , 2008, ASPLOS.

[12]  Jean J. Labrosse,et al.  MicroC/OS-II: The Real Time Kernel , 1998 .

[13]  Gerhard Fohler,et al.  A Framework to Construct Customized Harmonic Periods for Real-Time Systems , 2014, 2014 26th Euromicro Conference on Real-Time Systems.

[14]  Friedrich Eisenbrand,et al.  Static-Priority Real-Time Scheduling: Response Time Computation Is NP-Hard , 2008, 2008 Real-Time Systems Symposium.

[15]  Alberto L. Sangiovanni-Vincentelli,et al.  A hierarchical coordination language for interacting real-time tasks , 2006, EMSOFT '06.

[16]  Marco Spuri,et al.  Deadline Scheduling for Real-Time Systems: Edf and Related Algorithms , 2013 .

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

[18]  Christoph M. Kirsch,et al.  The Evolution of Real-Time Programming , 2007, Handbook of Real-Time and Embedded Systems.

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

[20]  Christoph M. Kirsch,et al.  Giotto: a time-triggered language for embedded programming , 2003 .

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

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

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