• DocumentCode
    1690248
  • Title

    Assuring and evolving concurrent programs: annotations and policy

  • Author

    Greenhouse, Aaron ; Scherlis, William L.

  • Author_Institution
    Sch. of Comput. Sci., Carnegie Mellon Univ., Pittsburgh, PA, USA
  • fYear
    2002
  • Firstpage
    453
  • Lastpage
    463
  • Abstract
    Assuring and evolving concurrent programs requires understanding the concurrency-related design decisions used in their implementation. In Java-style shared-memory programs, these decisions include which state is shared, how access to it is regulated, the roles of threads, and the policy that distinguishes desired concurrency from race conditions. We use case studies from production Java code to explore the costs and benefits of a new annotation-based approach for expressing design intent. Our intent is both to assist in establishing "thread safety" attributes in code and to support tools that safely restructure code. The annotations we use express "mechanical" properties such as lock-state associations, uniqueness of references, and encapsulation of state into named aggregations. Our analyses revealed race conditions in our case study samples, drawn from open-source projects and library code. The novel technical features of this approach include (1) flexible encapsulation via aggregations of state that can cross object boundaries, (2) the association of locks with state aggregations, (3) policy descriptions for allowable method interleavings, and (4) the incremental process for inserting, validating, and exploiting annotations.
  • Keywords
    Java; concurrency control; hazards and race conditions; multi-threading; shared memory systems; software reliability; software tools; synchronisation; Java-style shared-memory programs; allowable method interleavings; annotations; concurrency-related design decisions; concurrent programs; critical section boundaries; design intent; library code; lock splitting; lock-state associations; open-source projects; policy; production Java code; race conditions; state aggregations; state encapsulation; thread safety attributes; Concurrent computing; Encapsulation; Interleaved codes; Java; Libraries; Mechanical factors; Open source software; Production; Safety; Yarn;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2002. ICSE 2002. Proceedings of the 24rd International Conference on
  • Conference_Location
    Orlando, FL, USA
  • Print_ISBN
    1-58113-472-X
  • Type

    conf

  • Filename
    1007990