Skip to main content
Log in

A specification-based approach to concurrency analysis

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

The behavior of a concurrent program often depends on the arbitrary interleaving of computations performed by asynchronous processes. The resulting non-determinism can lead to such phenomena as deadlock and starvation, making program development extremely difficult, and consequently making the development of tools for formal analysis highly desirable.

A specification-based approach to concurrency analysis is a particularly promising way of addressing some of the difficulties inherent in concurrent program development. According to this approach, a programmer first writes a specification describing the interprocess communication behavior of a concurrent program. A set of formal analysis techniques are then applied in an effort to determine whether the specification can be fully satisfied. If the analysis is successful, target code is generated automatically that conforms to the specification.

This approach has a variety of benefits. While such properties as safety and liveness are rather difficult to discern in actual code, they are actually easy to include as part of a specification. Moreover, state spaces induced by specifications tend to be smaller and more manageable than state spaces of actual code, and this leads to more effective analysis techniques. Finally, the generation of interprocess communication code from formal specifications is accomplished in a relatively straightforward manner.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Avrunin, G.S., Buy, U.A., Corbett, J.C., Dillon, L.K., and Wileden, J.C. 1991. Automated analysis of concurrent systems with the constrained expression toolset.IEEE Trans. Softw. Eng., 17(11):1204–1222.

    Google Scholar 

  • Avrunin, G.S., Dillon, L.K., Wileden, J.C., and Riddle, W.E. 1986. Constrained expressions: Adding analysis capabilities to design methods for concurrent software systems.IEEE Trans. Softw. Eng., 12(2):278–292.

    Google Scholar 

  • Bryant, R.E. 1992. Symbolic boolean manipulation with ordered binary-decision diagrams.ACM Comput. Surv., 24(3):293–318.

    Google Scholar 

  • Buy, U. 1990.Automatic Synthesis of Resource Sharing Concurrent Programs. PhD Thesis, University of Massachusetts, Amherst, Massachusetts.

    Google Scholar 

  • Buy, U.A. and Moll, R. 1991a. Liveness analysis and the automatic generation of concurrent programs. In E.M. Clarke and R.P. Kurshan (Eds.),Computer-Aided Verification'90, DIMACS 3, pp. 535–550, American Mathematical Society.

  • Buy, U.A. and Moll, R. 1991b. A proof lattice-based technique for analyzing liveness of resource controllers. In E.M. Clarke and R.P. Kurshan (Eds.),Computer-Aided Verification: 2nd Internat. Conf., CAV'90, LNCS 531, pp. 292–301, Springer-Verlag.

  • Carriero, N. and Gelernter, D. 1989. Linda in context.Commun. ACM, 32(4):445–458.

    Google Scholar 

  • Clarke, E.M. and Emerson, E.A. 1981. Design and synthesis of synchronization skeletons using branching-time temporal logic. InProceedings of the Workshop on Logics of Programs, LNCS 131, pp. 52–71, Springer-Verlag.

  • Clarke, E.M., Emerson, E.A., and Sistla, A.P. 1986. Automatic verification of finite-state concurrent systems using temporal logic specifications.ACM Trans. Prog. Lang. Syst., 8(2):244–263.

    Google Scholar 

  • Cormen, T.H., Leiserson, C.E., and Rivest, R.L. 1990.Introduction to Algorithms. MIT Press/McGraw-Hill.

  • Desai, A. 1993. A specification based approach to concurrency analysis. Master's Thesis, University of Illinois at Chicago.

  • Dijkstra, E.W. 1965. Cooperating sequential processes. Technical Report EWD-123, Technological University, Eindhoven, The Netherlands.

    Google Scholar 

  • Dijkstra, E.W. 1975. Guarded commands, nondeterminacy and formal derivation of programs.Commun. ACM, 18(8):453–457.

    Google Scholar 

  • Duri, S., Buy, U., Devarapalli, R., and Shatz, S.M. 1993. Using state space reduction methods for deadlock analysis in Ada tasking. InProc. 1993 Internat. Sympos. on Software Testing and Analysis, pp. 51–60, ACM.

  • Emerson, E.A. and Lei, C.-L. 1987. Modalities for model checking: Branching time logic strikes back.Science of Computer Programming, 8:275–306.

    Google Scholar 

  • Genrich, H.J. and Lautenbach, K. 1981. System modelling with high-level Petri nets.Theoretical Computer Science 13, 13:109–136.

    Google Scholar 

  • Godefroid, P. and Wolper, P. 1992. Using partial orders for the efficient verification of deadlock freedom and safety properties. In K.G. Larsen and A. Skou (Eds.),Computer-Aided Verification: 3rd Internat. Conf., CAV'91, LNCS 575, pp. 332–342, Springer-Verlag.

  • Harel, D., Lachover, H., Naamad, A., Pnueli, A., Politi, M., Sherman, R., Shtull-Trauring, A., and Trakhtenbrot, M. 1990. STATEMATE: a working environment for development of complex reactive systems.IEEE Trans. Softw. Eng., 16(4):403–414.

    Google Scholar 

  • Helmbold, D. and Luckham, D. 1985. Debugging Ada tasking programs.IEEE Software, 2(2):47–57.

    Google Scholar 

  • Hoare, C.A.R. 1985.Communicating Sequential Processes. Prentice-Hall International.

  • Holzmann, G.J. 1991.Design and Validation of Computer Protocols. Prentice-Hall Software Series.

  • Karam, G.M. and Buhr, R.J. 1990. Starvation and critical race analyzers for Ada.IEEE Trans. Softw. Eng., 16(8):829–843.

    Google Scholar 

  • Long, D.L. and Clarke, L.A. 1989. Task interaction graphs for concurrency analysis. InProceedings of the 11th International Conference on Software Engineering. Pittsburgh, PA, pp. 44–52.

  • Manna, Z. and Wolper, P. 1984. Synthesis of communicating processes from temporal logic specifications.ACM Trans. Prog. Lang. Syst., 6(1):68–93.

    Google Scholar 

  • McDowell, C.E. 1989. A practical algorithm for static analysis of parallel programs.Journal of Parallel and Distributed Processing, pp. 515–536.

  • McMillan, K.L. 1993.Symbolic Model Checking. Boston, Massachusetts: Kluwer Academic Publishers.

    Google Scholar 

  • Milner, R. 1989.Communication and Concurrency. Englewood Cliffs, New Jersey: Prentice-Hall.

    Google Scholar 

  • Morgan, E.T. and Razouk, R.R. 1987. Interactive state-space analysis of concurrent systems.IEEE Trans. Softw. Eng., 13(10):1080–1091.

    Google Scholar 

  • Murata, T., Shenker, B., and Shatz, S.M. 1989. Detection of Ada static deadlocks using Petri net invariants.IEEE Trans. Softw. Eng., 15(3):314–326.

    Google Scholar 

  • Owicki, S. and Lamport, L. 1982. Proving liveness properties of concurrent programs.ACM Trans. Prog. Lang. Syst., 4(3):455–495.

    Google Scholar 

  • Pnueli, A. 1977. The temporal logic of programs. InProceedings 18th Annual Symposium on Foundations of Computer Science, pp. 46–57.

  • Ramamritham, K. 1985. Synthesizing code for resource controllers.IEEE Trans. Softw. Eng., 11(8):774–783.

    Google Scholar 

  • Ramamritham, K. and Keller, R.M. 1983. Specification of synchronizing processes.IEEE Trans. Softw. Eng., 9(6):722–733.

    Google Scholar 

  • Ramamritham, K. and Sundarrajan, P. 1983. Automatic generation of code for resource controller tasks in Ada. InProceedings of the IEEE Symposium on Application and Assessment of Automated Tools for Software Development, pp. 133–142.

  • Roscoe, A.W. and Hoare, C.A.R. 1988. The laws of Occam programming.Theoretical Computer Science, 20:177–229.

    Google Scholar 

  • Starke, P.H. 1991. Reachability analysis of Petri nets using symmetries.Syst. Anal. Model. Simul., 8:293–303.

    Google Scholar 

  • Taylor, R.N. 1983. A general-purpose algorithm for analyzing concurrent programs.Commun. ACM, 26(5):362–376.

    Google Scholar 

  • Tu, S., Shatz, S.M., and Murata, T. 1990. Applying Petri net reduction to support Ada-tasking deadlock analysis. InProc. Eleventh Internat. Conference on Distributed Computing Systems, Paris, France, pp. 96–103.

  • U.S. Department of Defense, Washington, D.C.Reference Manual for the Ada Programming Language, ANSI/MIL-STD-1815A edition, Jan. 1983.

  • Valmari, A. 1991. A stubborn attack on state explosion. In E.M. Clarke and R.P. Kurshan (Eds.),Computer-Aided Verification: 2nd Internat. Conf., CAV'90, LNCS 531, pp. 156–165, Springer-Verlag.

  • Young, M. and Taylor, R.N. 1988. Combining static concurrency analysis with symbolic execution.IEEE Trans. Softw. Eng., 14(10):1499–1511.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

Research partially supported by NSF grant CCR-9109231.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Buy, U., Moll, R. A specification-based approach to concurrency analysis. Autom Software Eng 2, 265–309 (1995). https://doi.org/10.1007/BF00871802

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00871802

Keywords

Navigation