Verifying parallel programs with resource allocation

Extended abstract
  • Susan Owicki
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 75)


Dynamic allocation is a common method of sharing resources among processes in operating systems and other concurrent programs. Proving the correctness of these programs is simplified if the proof techniques can take advantage of the fact that only one process at a time can operate on the shared resource. This paper describes a pattern for dynamic allocation, called protected allocation, and a verification technique based on that pattern. Protected allocation is defined in terms of capabilities, but it is not restricted to capability-based systems; in fact, the pattern is general enough to cover most allocation policies and implementation mechanisms. Several examples of the use and verification of protected allocation are sketched, but detailed proofs are omitted. This paper is a report of work in progress.


Main Memory Allocation Policy Program Component Allocation Mechanism Concurrent Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Andrews, G. R. and J. R. McGraw, "Language Features for Process Interactions," Proc. Language Design for Reliable Software, SIGPLAN Notices 12:3, (March, 1977) 114–127.Google Scholar
  2. Brinch Hansen, P., "The programming language Concurrent Pascal," IEEE Trans. on Software Engineering, Vol. SE-1, No. 2 (June, 1975), 199–207.Google Scholar
  3. Hoare, C. A. R. "A Structured Paging System," Computer Journal, Vol. 16, No. 3 (1973), 209–215.Google Scholar
  4. Owicki, S., "Specifications and Proofs for Abstract Data Types in Concurrent Programs," Technical Report No. 133, Digital Systems Laboratory, Stanford University, April, 1977.Google Scholar
  5. Owicki, S., "Verifying Concurrent Programs with Shared Data Classes," in E. J. Neuhold, ed. Formal Description of Programming Concepts, North-Holland, 1978.Google Scholar
  6. Silberschatz, A., R. B. Kieburtz, and A. Bernstein, "Extending Concurrent Pascal to Allow Dynamic Resource Management," IEEE Trans. on Software Engineering, Vol. SE-3, No. 3 (May, 1977), 210–217.Google Scholar
  7. Wirth, N., "Modula: A Language for Modular Multiprogramming," Technical Report No. 18, Institut für Informatik, ETH, March, 1976.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1979

Authors and Affiliations

  • Susan Owicki
    • 1
  1. 1.Stanford UniversityUSA

Personalised recommendations