skip to main content
10.1145/2462029.2462030acmconferencesArticle/Chapter ViewAbstractPublication PagespasteConference Proceedingsconference-collections
research-article

Automated inference of atomic sets for safe concurrent execution

Published: 20 June 2013 Publication History

Abstract

Atomic sets are a synchronization mechanism in which the programmer specifies the groups of data that must be accessed as a unit. The compiler can check this specification for consistency, detect deadlocks, and automatically add the primitives to prevent interleaved access. Atomic sets relieve the programmer from the burden of recognizing and pruning execution paths which lead to interleaved access, thereby reducing the potential for data races. However, manually converting programs from lock-based synchronization to atomic sets requires reasoning about the program's concurrency structure, which can be a challenge even for small programs. Our analysis eliminates the challenge by automating the reasoning. Our implementation of the analysis allowed us to derive the atomic sets for large code bases such as the Java collections framework in a matter of minutes. The analysis is based on execution traces; assuming all traces reflect intended behavior, our analysis enables safe concurrency by preventing unobserved interleavings which may harbor latent Heisenbugs.

References

[1]
C. Artho, K. Havelund, and A. Biere. High-level data races. In NDDL '03, pages 82--93. ICEIS Press, 2003.
[2]
M. Burrows and K. R. M. Leino. Finding stale-value errors in concurrent programs. Concurrency - Practice and Experience, 16(12):1161--1172, 2004.
[3]
P. Dinges and G. Agha. Scoped synchronization constraints for large scale actor systems. In COORDINATION '12, pages 89--103. Springer, 2012.
[4]
P. Dinges, M. Charalambides, and G. Agha. Automated inference of atomic sets for safe concurrent execution. Technical report, UIUC, April 2013. http://hdl.handle.net/2142/43357.
[5]
J. Dolby, C. Hammer, D. Marino, F. Tip, M. Vaziri, and J. Vitek. A data-centric approach to synchronization. ACM TOPLAS, 34(1):4, 2012.
[6]
C. Flanagan and S. N. Freund. Atomizer: A dynamic atomicity checker for multithreaded programs. Sci. Comput. Program., 71(2):89--109, 2008.
[7]
S. Frølund and G. Agha. A language framework for multi-object coordination. In ECOOP '93, pages 346--360. Springer, 1993.
[8]
C. Hammer, J. Dolby, M. Vaziri, and F. Tip. Dynamic detection of atomic-set-serializability violations. In ICSE '08, pages 231--240. ACM, 2008.
[9]
W. Huang and A. Milanova. Inferring AJ types for concurrent libraries. In FOOL '12, pages 82--88, 2012.
[10]
Z. Lai, S.-C. Cheung, and W. K. Chan. Detecting atomic-set serializability violations in multithreaded programs through active randomized testing. In ICSE '10, pages 235--244. ACM, 2010.
[11]
S. Lu, S. Park, C. Hu, X. Ma, W. Jiang, Z. Li, R. A. Popa, and Y. Zhou. MUVI: Automatically inferring multi-variable access correlations and detecting related semantic and concurrency bugs. In SOSP '07, pages 103--116. ACM, 2007.
[12]
S. Lu, S. Park, and Y. Zhou. Detecting concurrency bugs from the perspectives of synchronization intentions. IEEE Trans. Parallel Distrib. Syst., 23(6):1060--1072, 2012.
[13]
S. Lu, J. Tucek, F. Qin, and Y. Zhou. AVIO: Detecting atomicity violations via access-interleaving invariants. IEEE Micro, 27(1):26--35, 2007.
[14]
D. Marino, C. Hammer, J. Dolby, M. Vaziri, F. Tip, and J. Vitek. Detecting deadlock in programs with data-centric synchronization. Research Report RC25300 (WAT1208-051), IBM, 2012.
[15]
W. N. Sumner, C. Hammer, and J. Dolby. Marathon: Detecting atomic-set serializability violations with conflict graphs. In RV, pages 161--176. Springer, 2011.
[16]
M. Vaziri, F. Tip, and J. Dolby. Associating synchronization constraints with data in an object-oriented language. In POPL '06, pages 334--345. ACM, 2006.
[17]
D. Weeratunge, X. Zhang, and S. Jagannathan. Accentuating the positive: Atomicity inference and enforcement using correct executions. In OOPSLA '11, pages 19--34. ACM, 2011.

Cited By

View all
  • (2023)AtomiS: Data-Centric Synchronization Made PracticalProceedings of the ACM on Programming Languages10.1145/36228017:OOPSLA2(116-145)Online publication date: 16-Oct-2023
  • (2022)Condition-based synchronization in data-centric concurrency controlProceedings of the 37th ACM/SIGAPP Symposium on Applied Computing10.1145/3477314.3507120(1268-1275)Online publication date: 25-Apr-2022
  • (2018)Transforming Threads into Actors: Learning Concurrency Structure from Execution TracesPrinciples of Modeling10.1007/978-3-319-95246-8_2(16-37)Online publication date: 20-Jul-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PASTE '13: Proceedings of the 11th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering
June 2013
54 pages
ISBN:9781450321280
DOI:10.1145/2462029
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 June 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. atomic sets
  2. data-centric synchronization

Qualifiers

  • Research-article

Funding Sources

Conference

PASTE '13

Acceptance Rates

PASTE '13 Paper Acceptance Rate 7 of 13 submissions, 54%;
Overall Acceptance Rate 57 of 159 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)AtomiS: Data-Centric Synchronization Made PracticalProceedings of the ACM on Programming Languages10.1145/36228017:OOPSLA2(116-145)Online publication date: 16-Oct-2023
  • (2022)Condition-based synchronization in data-centric concurrency controlProceedings of the 37th ACM/SIGAPP Symposium on Applied Computing10.1145/3477314.3507120(1268-1275)Online publication date: 25-Apr-2022
  • (2018)Transforming Threads into Actors: Learning Concurrency Structure from Execution TracesPrinciples of Modeling10.1007/978-3-319-95246-8_2(16-37)Online publication date: 20-Jul-2018
  • (2016)From atomic variables to data-centric concurrency controlProceedings of the 31st Annual ACM Symposium on Applied Computing10.1145/2851613.2851734(1806-1811)Online publication date: 4-Apr-2016
  • (2015)A Case Study on Executing Instrumented Code in Java PathFinderACM SIGSOFT Software Engineering Notes10.1145/2830719.283073040:6(1-5)Online publication date: 11-Nov-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media