• DocumentCode
    750769
  • Title

    Proving Total Correctness of Parallel Programs

  • Author

    Babich, Alan F.

  • Author_Institution
    Basic Four Corporation
  • Issue
    6
  • fYear
    1979
  • Firstpage
    558
  • Lastpage
    574
  • Abstract
    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 model is based on KeUler´s model. The main contributions of the paper are techniques for proving the absence of deadlock and livelock. A connection is made between Keler´s work and Dijkstra´s work with serial non-deterministic programs. It is shown how a variant function may be used to prove finite termination, even if the variant function is not strictly decreasing, and how finite termination can be used to prove the absence of livelock. Handling of the finite delay assumption is also discussed. The illustrative examples indude one which occurred in a commercial environment and a classic synchronization problem solved without the aid of special synchronization primitives.
  • Keywords
    Concurrent program; correctness; deadlock; finite delay; finite termination; infinite loops; lvelock; mutual exclusion; parallel program; termination; variant function; verification; Computational modeling; Computer aided instruction; Concurrent computing; Delay; System recovery; Timing; Concurrent program; correctness; deadlock; finite delay; finite termination; infinite loops; lvelock; mutual exclusion; parallel program; termination; variant function; verification;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.1979.230192
  • Filename
    1702673