Formal timing analysis for distributed real-time programs

A static analysis method for verifying timing properties of real-time distributed programs is presented. The goal is to calculate the worst-case response time of concurrent tasks which run mainly independently but share, and may have to wait for, logical or physical devices. For such tasks, the determination of the worst-case waiting time is a crucial problem because of the unpredictable order of synchronization events. We investigate the class of distributed Client-Server programs in which independent, time-critical tasks (clients) are synchronized only through additional server tasks, playing the role of monitors or resource managers. This model follows well-known real-time design guidelines for distributed ADA programs proposed to enhance schedulability and synchronization analysis. Our formal analysis approach is flow graph oriented. It leads to generating reduced program paths each of which represents a sequence of ordered local and global operations, thus transforming and reducing the original problem of computing the worst-case waiting time of a concurrent task into a graph-theoretic problem of calculating the maximal blocking time for one of its corresponding program paths. While local operations are completely independent global operations require mutually exclusive access to shared resources. We prove that computing the worst-case blocking time for a program path is NP-complete. Even for a reduced problem solution—which would yield a good upper bound for the worst-case blocking time—there was a conjecture maintained over many years that this problem was NP-complete. A major result of this paper is to show that this is wrong. Instead, we construct a polynomial solution algorithm, and we prove its correctness. The effectiveness and complexity of our method are discussed, with particular emphasis on distributed real-time debugging.

[1]  Aloysius K. Mok,et al.  Safety analysis of timing properties in real-time systems , 1986, IEEE Transactions on Software Engineering.

[2]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[3]  Richard N. Taylor,et al.  A general-purpose algorithm for analyzing concurrent programs , 1983, CACM.

[4]  A. A. Aaby,et al.  Specification of real-time systems in real-time temporal interval logic , 1988, Proceedings. Real-Time Systems Symposium.

[5]  Richard C. Holt,et al.  Analyzing Hard-Real-Time Programs For Guaranteed Schedulability , 1991, IEEE Trans. Software Eng..

[6]  Vivek Nirkhe Application of partial evaluation to hard real-time programming , 1992 .

[7]  Alan C. Shaw,et al.  Experiments with a program timing tool based on source-level timing schema , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[8]  Ron Koymans,et al.  Specifying real-time properties with metric temporal logic , 1990, Real-Time Systems.

[9]  Aloysius K. Mok,et al.  A Graph-Theoretic Approach for Timing Analysis and its Implementation , 1987, IEEE Transactions on Computers.

[10]  Alexander D. Stoyen,et al.  Polynomial-time transformations and schedulability analysis of parallel real-time programs with restricted resource contention , 1992, Real-Time Systems.

[11]  Alexander D. Stoyenko,et al.  A Schedulability Analyzer for Real-Time Euclid. , 1987, RTSS 1987.

[12]  Lui Sha,et al.  Real-time scheduling theory and Ada , 1990, Computer.

[13]  Horst F. Wedde,et al.  A critical path approach for testing distributed real-time systems , 1991, Proceedings of the Twenty-Fourth Annual Hawaii International Conference on System Sciences.

[14]  P. M. Melliar-Smith,et al.  An interval logic for higher-level temporal reasoning , 1983, PODC '83.

[15]  D. Huizinga Analysis of timing properties for distributed real-time programs , 1992 .

[16]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[17]  Niklaus Wirth,et al.  Toward a discipline of real-time programming , 1977, CACM.

[18]  Peter P. Puschner,et al.  Calculating the maximum execution time of real-time programs , 1989, Real-Time Systems.

[19]  Daniel S. Hirschberg,et al.  A linear space algorithm for computing maximal common subsequences , 1975, Commun. ACM.

[20]  Dennis W. Leinbaugh,et al.  Guaranteed response times in a distributed hard-real-time environment , 1986, IEEE Transactions on Software Engineering.

[21]  C. Samuel Hsieh Timing analysis of cyclic concurrent programs , 1989, ICSE '89.

[22]  William Pugh,et al.  Partial evaluation of high-level imperative programming languages with applications in hard real-time systems , 1992, POPL '92.

[23]  John A. Stankovic,et al.  Misconceptions About Real-Time Computing , 1988, Computer.