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.
- 1 Ashcroft, E., and Manna, Z. Formalization of properties of parallel programs. Machine Intelligence 6 (1970) 17-41.Google Scholar
- 2 Ashcroft, E.A. Proving assertions about parallel programs. J. Comp. Sys. Sci. 10, 1 (Jan. 1975), 110-135.Google ScholarDigital Library
- 3 Brinch Hansen, P. A comparison of two synchronizing concepts. Acta lnformatica 1 (1972), 190-199.Google Scholar
- 4 Conway, M. A multiprocessor system design. AFIPS Conf. Proc., VoL 24, AFIPS Press, Montvale, N.J., 1963, pp. 139-148.Google ScholarDigital Library
- 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 ScholarDigital Library
- 6 Dijkstra, E.W. Hierarchical ordering of sequential processes. Acta Informatica I (1971), 115-138.Google ScholarDigital Library
- 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 ScholarCross Ref
- 8 Habermarm, A.N. Prevention of system deadlocks. Comm. ACM 12, 7 (July 1969), 373-377. Google ScholarDigital Library
- 9 Habermann, A.N. Synchronization of communicating processes. Comm. ACM 15, 3 (March 1972), 177-184. Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 12 Holt, R.C. On deadlock in computer systems. Tech. Rep. CSRG-6, Computer Systems Research Group, U. of Toronto, Apil 1971.Google ScholarDigital Library
- 13 IBM PL/I Reference Manual, Form C28-8201-1, March 1968.Google Scholar
- 14 Karp, R.M., and Miller, R.E. Parallel program schemata, J. Computer Sci. 3 (May 1969), 147-195.Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 17 Keller, R.M. A fundamental theorem of asynchronous parallel computation, In Parallel Processing, T.Y. Feng (Ed.), Springer- Verlag, Berlin, 1975. Google ScholarDigital Library
- 18 Keller, R.M. Generalized Petri nets as models for system verification (to appear).Google Scholar
- 19 Lauer, H.C. Correctness in operating systems, Ph.D. Th., Carnegie-Mellon U., Sept. 1972. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
Recommendations
-
Proving Total Correctness of Parallel Programs
An approach to proving paralel programs correct is presented. The steps are 1) model the paralel program, 2) prove partial correctness (proper synchronization), and 3) prove the absence of deadlock, livelock, and infinite loops. The parallel program ...
-
A view of program verification
Proceedings of the international conference on Reliable softwareOne person's perspectives of program verification and its relation to some aspects of reliable software are presented. The main verification method of inductive assertions is illustrated with several variations of one detailed example; a second example ...
-
The current state of proving programs correct
ACM '72: Proceedings of the ACM annual conference - Volume 1Presented are successful efforts in proving that computer programs are correct. Included are (i) the methods used, (ii) the wide class of programs (including systems programs) that have been proved, and (iii) implemented computer systems for ...
Comments