Bounding Shared-Stack Usage in Systems with Offsets and Precedences

The paper presents two novel methods to bound the stack memory used in preemptive, shared stack, real-time systems. The first method is based on branch-and-bound search for possible preemption patterns, and the second one approximates the first in polynomial time. The work extends previous methods by considering a more general task-model, in which all tasks can share the same stack. In addition, the new methods account for precedence and offset relations. Thus, the methods give tight bounds for a large set of realistic systems. The methods have been implemented and a comprehensive evaluation, comparing our new methods against each other and against existing methods, is presented. The evaluation shows that our exact method can significantly reduce the amount of stack memory needed.

[1]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

[2]  Alexander G. Dean,et al.  Preemption Threshold Scheduling: Stack Optimality, Enhancements and Analysis , 2007, 13th IEEE Real Time and Embedded Technology and Applications Symposium (RTAS'07).

[3]  Gerhard Fohler,et al.  Reducing the number of preemptions in fixed priority scheduling , 2004, Proceedings. 16th Euromicro Conference on Real-Time Systems, 2004. ECRTS 2004..

[4]  Jukka Mäki-Turja,et al.  Determining Maximum Stack Usage in Preemptive Shared Stack Systems , 2006, 2006 27th IEEE International Real-Time Systems Symposium (RTSS'06).

[5]  Michael González Harbour,et al.  Schedulability analysis for tasks with static and dynamic offsets , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[6]  Giuseppe Lipari,et al.  Minimizing memory utilization of real-time task sets in single and multi-processor systems-on-a-chip , 2001, Proceedings 22nd IEEE Real-Time Systems Symposium (RTSS 2001) (Cat. No.01PR1420).

[7]  F. McMorris,et al.  Topics in Intersection Graph Theory , 1987 .

[8]  Frank Mueller,et al.  Bounding Preemption Delay within Data Cache Reference Patterns for Real-Time Tasks , 2006, 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'06).

[9]  John Regehr,et al.  Eliminating stack overflow by abstract interpretation , 2003, TECS.

[10]  Jukka Mäki-Turja,et al.  Fast and tight response-times for tasks with offsets , 2005, 17th Euromicro Conference on Real-Time Systems (ECRTS'05).

[11]  Jens Palsberg,et al.  Stack size analysis for interrupt-driven programs , 2004, Inf. Comput..

[12]  Rajeev Barua,et al.  MTSS: multi task stack sharing for embedded systems , 2005, CASES '05.

[13]  Rolf Ernst,et al.  Scheduling analysis of real-time systems with precise modeling of cache related preemption delay , 2005, 17th Euromicro Conference on Real-Time Systems (ECRTS'05).

[14]  Alan Burns,et al.  Real-Time Systems and Programming Languages , 2009 .

[15]  John Regehr,et al.  Scheduling tasks with mixed preemption relations for robustness to timing faults , 2002, 23rd IEEE Real-Time Systems Symposium, 2002. RTSS 2002..

[16]  Robert I. Davis,et al.  How Embedded Applications using an RTOS can stay within On-chip Memory Limits , 2002 .

[17]  Chang-Gun Lee,et al.  Bounding Cache-Related Preemption Delay for Real-Time Systems , 2001, IEEE Trans. Software Eng..

[18]  Manas Saksena,et al.  Scalable real-time system design using preemption thresholds , 2000, Proceedings 21st IEEE Real-Time Systems Symposium.

[19]  James H. Anderson,et al.  Real-time computing with lock-free shared objects , 1997, TOCS.

[20]  Theodore P. Baker,et al.  A stack-based resource allocation policy for realtime processes , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[21]  Jukka Mäki-Turja,et al.  Efficient Development of Real-Time Systems Using Hybrid Scheduling , 2005, ESA.