Determining Maximum Stack Usage in Preemptive Shared Stack Systems

This paper presents a novel method to determine the maximum stack memory used in preemptive, shared stack, real-time systems. We provide a general and exact problem formulation applicable for any preemptive system model based on dynamic (run-time) properties. We also show how to safely approximate the exact stack usage by using static (compile time) information about the system model and the underlying run-time system on a relevant and commercially available system model: a hybrid, statically and dynamically, scheduled system. Comprehensive evaluations show that our technique significantly reduces the amount of stack memory needed compared to existing analysis techniques. For typical task sets a decrease in the order of 70% is typical

[1]  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..

[2]  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).

[3]  Reinhold Heckmann,et al.  Verifying safety-critical timing and memory-usage properties of embedded software by abstract interpretation , 2005, Design, Automation and Test in Europe.

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

[5]  Jens Palsberg,et al.  Static checking of interrupt-driven software , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[6]  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).

[7]  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).

[8]  Binoy Ravindran,et al.  A space-optimal wait-free real-time synchronization protocol , 2005, 17th Euromicro Conference on Real-Time Systems (ECRTS'05).

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

[10]  Jukka Mäki-Turja,et al.  Efficient Event-Triggered Tasks in an RTOS , 2005, ESA.

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

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

[13]  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).

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

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

[16]  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).

[17]  Robert E. Tarjan,et al.  Algorithmic aspects of vertex elimination , 1975, STOC.

[18]  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..

[19]  Gerhard Fohler,et al.  Handling interrupts with static scheduling in an automotive vehicle control system , 1998, Proceedings Fifth International Conference on Real-Time Computing Systems and Applications (Cat. No.98EX236).

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

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