Flexible Static Scheduling of Software with Logical Execution Time Constraints

Various programming models for embedded, time-triggered software employ the logical execution time (LET) abstraction in order to achieve time- and value-determinism. In these models, the application software is partitioned into tasks and a LET is associated with every task. In every execution, a task reads input values at the beginning of the LET and writes output values at the end of the LET. To achieve this behavior, existing implementations of LET models impose execution constraints where every physical execution of a task must take place between the corresponding LET bounds. In this paper we investigate a more efficient implementation paradigm in which LET-based execution constraints are relaxed by allowing tasks to execute outside of their LET bounds while preserving their I/O LET behavior. We present a modified runtime operational semantics where scheduling operations are decoupled from data transfer operations. Moreover, we propose a way to statically determine task release times that may precede LET start times, by using information about tasks connectivity (available in the LET model) and about task execution times (required for schedulability analysis). The consequences of using the relaxed constraints on the schedulability of the system are explored. We address sustainability of preemptive scheduling with respect to variations in release times and propose bounds on such variations that preserve schedulability for Fixed Priority (FP) scheduling. Moreover, we describe an application of Dual Priority scheduling which guarantees schedulability for any release time variation of a system that is originally FP-schedulable. Relaxing execution constraints leads to increased processor utilization. Some of the benefits thereof are illustrated on a typical control application.

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

[2]  Thomas A. Henzinger,et al.  Composable code generation for distributed giotto , 2005, ACM SIGPLAN Conference on Languages, Compilers, and Tools for Embedded Systems.

[3]  Wolfgang Pree,et al.  Modeling with the Timing Definition Language (TDL) , 2006, ASWSD.

[4]  Richard Gerber,et al.  Semantics-based compiler transformations for enhanced schedulability , 1993, 1993 Proceedings Real-Time Systems Symposium.

[5]  Joseph Y.-T. Leung,et al.  On the complexity of fixed-priority scheduling of periodic, real-time tasks , 1982, Perform. Evaluation.

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

[7]  Alan Burns,et al.  Sustainability in Real-time Scheduling , 2008, J. Comput. Sci. Eng..

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

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

[10]  Manfred Broy,et al.  Model-Driven Development of Reliable Automotive Services, Second Automotive Software Workshop, ASWSD 2006, San Diego, CA, USA, March 15-17, 2006, Revised Selected Papers , 2006, Automotive Software Workshop.

[11]  J. Schiemann,et al.  ERCOS: An Operating System for Automotive Applications , 1996 .

[12]  Alan Burns,et al.  Dual Priority Assignment: A Practical Method For Increasing Processor Utilisation , 1993, Fifth Euromicro Workshop on Real-Time Systems.

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