Proceedings of the 24th International Conference on Software Engineering - ICSE '02 2002
DOI: 10.1145/581339.581394
|View full text |Cite
|
Sign up to set email alerts
|

Invariant-based specification, synthesis, and verification of synchronization in concurrent programs

Abstract: Concurrency is used in modern software systems as a means of addressing performance, availability, and reliability requirements. The collaboration of multiple independently executing components is fundamental to meeting such requirements and such collaboration is realized by synchronizing component execution.Using current technologies developers are faced with a tension between correct synchronization and performance. Developers can be confident when simple forms of synchronization are used, for example, locki… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
38
0

Year Published

2004
2004
2017
2017

Publication Types

Select...
7
1

Relationship

2
6

Authors

Journals

citations
Cited by 59 publications
(38 citation statements)
references
References 24 publications
0
38
0
Order By: Relevance
“…This is achieved by deleting transitions from the state-space based on observational equivalence between states, and inspecting if the resulting program satisfies the specification and is implementable. [4] allows users to specify synchronization patterns for critical sections, which are used to infer appropriate synchronization for each of the user-identified region. Vechev et al [20] address the problem of automatically deriving linearizable objects with fine-grained concurrency, using hardware primitives to achieve atomicity.…”
Section: Related Workmentioning
confidence: 99%
“…This is achieved by deleting transitions from the state-space based on observational equivalence between states, and inspecting if the resulting program satisfies the specification and is implementable. [4] allows users to specify synchronization patterns for critical sections, which are used to infer appropriate synchronization for each of the user-identified region. Vechev et al [20] address the problem of automatically deriving linearizable objects with fine-grained concurrency, using hardware primitives to achieve atomicity.…”
Section: Related Workmentioning
confidence: 99%
“…The separation and automatic programming of synchronization concerns serves as the motivation for many concurrent programming frameworks, including D [16], concurrency controllers [6], SyncGen [10], Szumo [3,25], and Java transactions [13,14]. Separating the synchronization logic from the "business logic" is intended to simplify programming both concerns by virtue of not needing to "mix" the two.…”
Section: Approaches To Separation and Automatic Programming Of Synchrmentioning
confidence: 99%
“…However, the operations might implement complex collaborations with other controllers to acquire a set of resources while avoiding deadlock. Approaches that employ this pattern include SyncGen, which generates them from declarative region invariants [10], the system of Betin-Can and Bultan, which generates them from action-language specifications [6], and our own Szumo system, which generates them from declarative synchronization contracts [25,5].…”
Section: Approaches To Separation and Automatic Programming Of Synchrmentioning
confidence: 99%
See 1 more Smart Citation
“…The second family, characterized by a semi-endogenous transformation, is the short-distance one. In this family, the formalism is embedded in the implementation code in form of special comments, as in SyncGen [21], or in form of special keywords and statements, as in ArchJava [2]. In this case, only special symbols are translated into implementation code, while the rest is left unchanged.…”
Section: Code Generationmentioning
confidence: 99%