Abstract
Each process in a distributed program or design can be modelled as a process flow graph, where nodes represent program statements and directed edges represent control flows. This paper describes a flow analysis method to detect unreachable statements by examining the control flows and communication patterns in a collection of process flow graphs. The method can analyse programs with loops, non-deterministic structures and synchronous communication using an algorithm with a quadratic complexity in terms of program size. The method follows an approach described by Reif and Smolka [9] but delivers a more accurate result in assessing the reachability of statements. The higher accuracy is achieved using three techniques: statement dependency, history sets and statement re-reachability. The method is illustrated by a pump control application for a mining environment. A prototype has been implemented and its performance is presented.
Preview
Unable to display preview. Download preview PDF.
References
G.S. Avrunin, U.A. Buy, J.C. Corbett, et al.: Automated Analysis of Concurrent Systems with the Constrained Expression Toolset IEEE TOSE 17, 11, 1204–1222.
S.C. Cheung and J. Kramer: Tractable Flow Analysis for Anomaly Detection in Distributed Programs, Technical Report, DOC 1993/3, March 1993.
P.C. Kanellakis and S.A. Smolka: On the Analysis of Cooperation and Antagonism in Networks of Communicating Processes. In Proc. 4th ACM Symposium on Principles of Distributed Computing, Ontario, Canada, August 1985, pp. 23–38.
J. Kramer, J. Magee, M. Sloman, et al.: CONIC: an Integrated Approach to Distributed Computer Control Systems. IEE Proceedings, Part E 130, 1 (January 1983), 1–10.
C.E. McDowell and D.P. Helmbold: Debugging Concurrent Programs. ACM Computing Surveys 21, 4, 593–623.
N. Mercouroff: An Algorithm for Analyzing Communicting Processes. In Proc. Mathematical Foundation of Programming Semantics '91, Pittsburgh, PA, March 1991, published in LNCS 598.
W. Peng and S. Purushothaman: Towards data flow analysis of communicating finite state machines. In Proc. 8th ACM Symposium on Principles of Distributed Computing, August 1989.
W. Peng and S. Purushothaman: Data Flow Analysis of Communicating Finite State Machines. ACM Transactions on Programming Languages and Systems 13, 3, 399–432.
J. Reif and S. Smolka: Data Flow Analysis of Distributed Communicating Processes. Internation Journal of Parallel Programming 19, 1 (1990), 1–30.
J.H. Reif: Dataflow Analysis of Communicating Processes. In Proc. 6th ACM Symposium on Principles of Programming Languages, June 1979, pp. 257–268.
K.C. Tai and C.Y. Din: Validation of Concurrency in Software Specification and Design. In Proc. 3rd International Workshop on Software Specification and Design, London, UK, August 1985, pp. 223–227.
R.N. Taylor: Complexity of Analyzing the Synchonization Structure of Concurrent Programs. Acta Informatica 19, 57–84.
R.D. Yang and C.G. Chung: The Analysis of Infeasible Concurrent Paths of Concurrent Ada Programs. In Proc. 14th Annual International Computer Software and Applications Conference (COMPSAC 90), Chicago, Illinois, October 1990, pp. 424–429.
M. Young and R.N. Taylor: Combining Static Concurrency Analysis with Symbolic Execution. IEEE Transactions on Software Engineering 14, 10, 1499–1511.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cheung, S.C., Kramer, J. (1993). Tractable flow analysis for anomaly detection in distributed programs. In: Sommerville, I., Paul, M. (eds) Software Engineering — ESEC '93. ESEC 1993. Lecture Notes in Computer Science, vol 717. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57209-0_20
Download citation
DOI: https://doi.org/10.1007/3-540-57209-0_20
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57209-1
Online ISBN: 978-3-540-47972-7
eBook Packages: Springer Book Archive