skip to main content
article
Free Access

Formal verification of parallel programs

Published:01 July 1976Publication History
Skip Abstract Section

Abstract

Two formal models for parallel computation are presented: an abstract conceptual model and a parallel-program model. The former model does not distinguish between control and data states. The latter model includes the capability for the representation of an infinite set of control states by allowing there to be arbitrarily many instruction pointers (or processes) executing the program. An induction principle is presented which treats the control and data state sets on the same ground. Through the use of “place variables,” it is observed that certain correctness conditions can be expressed without enumeration of the set of all possible control states. Examples are presented in which the induction principle is used to demonstrate proofs of mutual exclusion. It is shown that assertions-oriented proof methods are special cases of the induction principle. A special case of the assertions method, which is called parallel place assertions, is shown to be incomplete. A formalization of “deadlock” is then presented. The concept of a “norm” is introduced, which yields an extension, to the deadlock problem, of Floyd's technique for proving termination. Also discussed is an extension of the program model which allows each process to have its own local variables and permits shared global variables. Correctness of certain forms of implementation is also discussed. An Appendix is included which relates this work to previous work on the satisfiability of certain logical formulas.

References

  1. 1 Ashcroft, E., and Manna, Z. Formalization of properties of parallel programs. Machine Intelligence 6 (1970) 17-41.Google ScholarGoogle Scholar
  2. 2 Ashcroft, E.A. Proving assertions about parallel programs. J. Comp. Sys. Sci. 10, 1 (Jan. 1975), 110-135.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3 Brinch Hansen, P. A comparison of two synchronizing concepts. Acta lnformatica 1 (1972), 190-199.Google ScholarGoogle Scholar
  4. 4 Conway, M. A multiprocessor system design. AFIPS Conf. Proc., VoL 24, AFIPS Press, Montvale, N.J., 1963, pp. 139-148.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 Courtois, P.J., Heymans, R., an d Parnas, D.L. Concurrent cntrol with readers and writers. Comm. ACM 14, 10 (Oct. 1971), 667-668. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Dijkstra, E.W. Hierarchical ordering of sequential processes. Acta Informatica I (1971), 115-138.Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 Floyd, R.W. Assigning meanings to programs. Proc. Syrup. in Appl. Math, Vol. 19, Amer. Math. Sot., Provincetown, R.I., 1967, pp. 19-32.Google ScholarGoogle ScholarCross RefCross Ref
  8. 8 Habermarm, A.N. Prevention of system deadlocks. Comm. ACM 12, 7 (July 1969), 373-377. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Habermann, A.N. Synchronization of communicating processes. Comm. ACM 15, 3 (March 1972), 177-184. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 Hoare, C.A.R. Towards a theory of parallel programming. In Operating Systems Techniques, Hoare and Perrot (Eds.), Academic Press, New York, 1972, pp. 61-71.Google ScholarGoogle Scholar
  11. 11 Holt, A., and Commoner, F. Events and conditions. Record of the Project MAC Conference on Concurrent Systems and Parallel Computation, June 1970, pp. 3-52.Google ScholarGoogle Scholar
  12. 12 Holt, R.C. On deadlock in computer systems. Tech. Rep. CSRG-6, Computer Systems Research Group, U. of Toronto, Apil 1971.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 IBM PL/I Reference Manual, Form C28-8201-1, March 1968.Google ScholarGoogle Scholar
  14. 14 Karp, R.M., and Miller, R.E. Parallel program schemata, J. Computer Sci. 3 (May 1969), 147-195.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 Keller, R.M. Parallel program schemata and maximal parallelism. J. ACM 20, 3 (July 1973), 514-537; and J. ACM 20, 4 (Oct. 1973), 696-710. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 Keller, R.M. Vector replacement systems: a formalism for modeling asynchronous systems. TR 117, Computer Sci. Lab., Dep. of Electrical Eng., Princeton U., Dec. 1972 (revised Jan. 1974).Google ScholarGoogle Scholar
  17. 17 Keller, R.M. A fundamental theorem of asynchronous parallel computation, In Parallel Processing, T.Y. Feng (Ed.), Springer- Verlag, Berlin, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18 Keller, R.M. Generalized Petri nets as models for system verification (to appear).Google ScholarGoogle Scholar
  19. 19 Lauer, H.C. Correctness in operating systems, Ph.D. Th., Carnegie-Mellon U., Sept. 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20 Levitt, K.N. The application of program-proving techniques to the verification of synchronization processes, AFIPS Conference Proc., Vol. 41, 1972 FJCC, AFIPS Press, Montvale, N.J., 1972, pp. 33-47.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21 Lipton, R.J. Reduction: A method of proving properties of systems of processes. Research Rep. No. 40, Yale U. Dep. of Computer Sci., March 1975.Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

  • Published in

    cover image Communications of the ACM
    Communications of the ACM  Volume 19, Issue 7
    July 1976
    56 pages
    ISSN:0001-0782
    EISSN:1557-7317
    DOI:10.1145/360248
    Issue’s Table of Contents

    Copyright © 1976 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 1 July 1976

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • article

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader