Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1869459.1869514acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Task types for pervasive atomicity

Published: 17 October 2010 Publication History

Abstract

Atomic regions are an important concept in correct concurrent programming: since atomic regions can be viewed as having executed in a single step, atomicity greatly reduces the number of possible interleavings the programmer needs to consider. This paper describes a method for building atomicity into a programming language in an organic fashion. We take the view that atomicity holds for whole threads by default, and a division into smaller atomic regions occurs only at points where an explicit need for sharing is needed and declared. A corollary of this view is every line of code is part of some atomic region. We define a polymorphic type system, Task Types, to enforce most of the desired atomicity properties statically. We show the reasonableness of our type system by proving that type soundness, isolation invariance, and atomicity enforcement properties hold at run time. We also present initial results of a Task Types implementation built on Java

References

[1]
}}Martin Abadi, Andrew Birrell, Tim Harris, and Michael Isard. Semantics of transactional memory and automatic mutual exclusion. In POPL '08, pages 63--74, 2008.
[2]
}}Ole Agesen. Concrete type inference: delivering object-oriented applications. PhD thesis, Stanford University, Stanford, CA, USA, 1996.
[3]
}}Gul Agha. ACTORS : A model of Concurrent computations in Distributed Systems. MITP, Cambridge, Mass., 1990.
[4]
}}J. Armstrong. Erlang - a Survey of the Language and its Industrial Applications. In INAP'96 - The 9th Exhibitions and Symposium on Industrial Applications of Prolog, pages 16--18, Hino, Tokyo, Japan, 1996.
[5]
}}Robert L. Bocchino, Jr., Vikram S. Adve, Danny Dig, Sarita V. Adve, Stephen Heumann, Rakesh Komuravelli, Jeffrey Overbey, Patrick Simmons, Hyojin Sung, and Mohsen Vakilian. A type and effect system for deterministic parallel java. In OOPSLA '09, pages 97--116, 2009.
[6]
}}Bruno Blanchet. Escape analysis for object-oriented languages: application to java. SIGPLAN Not., 34(10):20--34, 1999.
[7]
}}Marc Berndl, Ondrej Lhoták, Feng Qian, Laurie Hendren, and Navindra Umanee. Points-to analysis using bdds. In PLDI '03, pages 103--114, 2003.
[8]
}}Chandrasekhar Boyapati, Robert Lee, and Martin Rinard. Ownership types for safe programming: preventing data races and deadlocks. In OOPSLA '02, pages 211--230, 2002.
[9]
}}Stephen Brookes. A semantics for concurrent separation logic. Theoretical Computer Science, 375(1-3):227 -- 270, 2007.
[10]
}}Sigmund Cherem, Trishul Chilimbi, and Sumit Gulwani. Inferring locks for atomic sections. In PLDI'08, pages 304--315, 2008.
[11]
}}Wei-Ngan Chin, Florin Craciun, Shengchao Qin, and Martin Rinard. Region inference for an object-oriented language. In PLDI '04, pages 243--254, 2004.
[12]
}}Jong-deok Choi, Manish Gupta, Mauricio Serrano, Vugranam C. Sreedhar, and Sam Midkiff. Escape analysis for java. In OOPSLA'99, pages 1--19, 1999.
[13]
}}Dave Clarke. Object Ownership and Containment. PhD thesis, University of New South Wales, July 2001.
[14]
}}B. CarlStrom, A. McDonald, H. Chafi, J. Chung, C. Minh, C. Kozyrakis, and K. Olukotun. The atomos transactional programming language. In PLDI'06, June 2006.
[15]
}}David G. Clarke, John M. Potter, and James Noble. Ownership types for flexible alias protection. In In OOPSLA'98, pages 48--64. ACM Press, 1998.
[16]
}}Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified data processing on large clusters. In OSDI'04, 2004.
[17]
}}W. Dietl and P. Müller. Runtime universe type inference. In IWACO'07, 2007.
[18]
}}Michael Emmi, Jeffrey S. Fischer, Ranjit Jhala, and Rupak Majumdar. Lock allocation. In POPL '07, pages 291--296, 2007.
[19]
}}Maryam Emami, Rakesh Ghiya, and Laurie J. Hendren. Context-sensitive interprocedural points-to analysis in the presence of function pointers. In PLDI'94, pages 242--256, 1994.
[20]
}}Cormac Flanagan and Shaz Qadeer. A type and effect system for atomicity. In PLDI'03, pages 338--349, 2003.
[21]
}}William D. Gropp, Ewing Lusk, and Anthony Skjellum. Using MPI - Portable Parallel Programming with the Message Passing Interface. MIT Press, Cambridge, MA, 1994.
[22]
}}Dan Grossman. Type-safe multithreading in cyclone. In TLDI '03, pages 13--25, 2003.
[23]
}}Tim Harris and Keir Fraser. Language support for lightweight transactions. In OOPSLA'03, pages 388--402, 2003.
[24]
}}Michael Hicks, Jeffrey S. Foster, and Polyvios Prattikakis. Lock inference for atomic sections. In TRANSACT'06, June 2006.
[25]
}}Tim Harris, Simon Marlow, Simon Peyton-Jones, and Maurice Herlihy. Composable memory transactions. In PPoPP '05, pages 48--60, 2005.
[26]
}}Michael Isard and Andrew Birrell. Automatic mutual exclusion. In HOTOS'07: Proceedings of the 11th USENIX workshop on Hot topics in operating systems, pages 1--6, Berkeley, CA, USA, 2007. USENIX Association.
[27]
}}Atsushi Igarashi, Benjamin Pierce, and Philip Wadler. Featherweight java - a minimal core calculus for java and gj. In ACM Transactions on Programming Languages and Systems, pages 132--146, 1999.
[28]
}}Sheng Liang and Gilad Bracha. Dynamic class loading in the java virtual machine. In In OOPSLA'98, pages 36--44. ACM Press, 1998.
[29]
}}Richard J. Lipton. Reduction: a method of proving properties of parallel programs. Commun. ACM, 18(12):717--721, 1975.
[30]
}}Yu David Liu, Xiaoqi Lu, and Scott F. Smith. Coqa: Concurrent objects with quantized atomicity. In CC'08, March 2008.
[31]
}}Yu David Liu and Scott Smith. Pedigree types. In 4th International Workshop on Aliasing, Confinement and Ownership in object-oriented programming (IWACO), pages 63--71, July 2008.
[32]
}}Ana Milanova, Atanas Rountev, and Barbara G. Ryder. Parameterized object sensitivity for points-to analysis for java. ACM Trans. Softw. Eng. Methodol., 14(1):1--41, 2005.
[33]
}}Bill McCloskey, Feng Zhou, David Gay, and Eric Brewer. Autolocker: synchronization inference for atomic sections. In POPL'06, pages 346--358, 2006.
[34]
}}Nathaniel Nystrom, Michael R. Clarkson, and Andrew C. Myers. Polyglot: An extensible compiler framework for java. In CC'03, volume 2622, pages 138--152, NY, April 2003. Springer-Verlag.
[35]
}}Peter W. OHearn. Resources, concurrency, and local reasoning. Theoretical Computer Science, 375(1-3):271--307, 2007.
[36]
}}Matthew Parkinson and Gavin Bierman. Separation logic and abstraction. In POPL'05, pages 247--258, 2005.
[37]
}}Matthew J. Parkinson and Gavin M. Bierman. Separation logic, abstraction and inheritance. In POPL '08, pages 75--86, New York, NY, USA, 2008. ACM.
[38]
}}L. A. Smith, J. M. Bull, and J. Obdrzálek. A parallel java grande benchmark suite. In Supercomputing '01: Proceedings of the 2001 ACM/IEEE conference on Supercomputing, 2001.
[39]
}}Sriram Srinivasan and Alan Mycroft. Kilim: Isolation-typed actors for java. In ECOOP'08, 2008.
[40]
}}Tatiana Shpeisman, Vijay Menon, Ali-Reza Adl-Tabatabai, Steven Balensiefer, Dan Grossman, Richard L. Hudson, Katherine F. Moore, and Bratin Saha. Enforcing isolation and ordering in stm. In PLDI'07, pages 78--88, 2007.
[41]
}}http://www.cs.binghamton.edu/~davidL/tasktypes.
[42]
}}Mads Tofte and Jean-Pierre Talpin. Region-based memory management. Information and Computation, 1997.
[43]
}}Mandana Vaziri, Frank Tip, and Julian Dolby. Associating synchronization constraints with data in an object-oriented language. In POPL '06, pages 334--345, 2006.
[44]
}}Adam Welc, Suresh Jagannathan, and Antony L. Hosking. Transactional monitors for concurrent objects. In ECOOP'04, pages 519--542, 2004.
[45]
}}John Whaley and Monica S. Lam. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In PLDI'04, pages 131--144, 2004.
[46]
}}John Whaley and Martin Rinard. Compositional pointer and escape analysis for java programs. In OOPSLA, pages 187--206, 1999.
[47]
}}Alisdair Wren. Ownership type inference. Master's thesis, Imperial College, 2003.
[48]
}}Tiejun Wang and Scott F. Smith. Precise constraint-based type inference for Java. In ECOOP'01, pages 99--117, 2001.

Cited By

View all
  • (2017)Understanding and overcoming parallelism bottlenecks in ForkJoin applicationsProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering10.5555/3155562.3155657(765-775)Online publication date: 30-Oct-2017
  • (2017)Order types: static reasoning about message races in asynchronous message passing concurrencyProceedings of the 7th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control10.1145/3141834.3141837(21-30)Online publication date: 23-Oct-2017
  • (2017)Understanding and overcoming parallelism bottlenecks in ForkJoin applications2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE.2017.8115687(765-775)Online publication date: Oct-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
October 2010
984 pages
ISBN:9781450302036
DOI:10.1145/1869459
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 45, Issue 10
    OOPSLA '10
    October 2010
    957 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1932682
    Issue’s Table of Contents
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 ACM 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: 17 October 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. pervasive atomicity
  2. sharing-aware programming
  3. type systems

Qualifiers

  • Research-article

Conference

SPLASH '10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2017)Understanding and overcoming parallelism bottlenecks in ForkJoin applicationsProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering10.5555/3155562.3155657(765-775)Online publication date: 30-Oct-2017
  • (2017)Order types: static reasoning about message races in asynchronous message passing concurrencyProceedings of the 7th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control10.1145/3141834.3141837(21-30)Online publication date: 23-Oct-2017
  • (2017)Understanding and overcoming parallelism bottlenecks in ForkJoin applications2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE.2017.8115687(765-775)Online publication date: Oct-2017
  • (2016)First-class effect reflection for effect-guided programmingACM SIGPLAN Notices10.1145/3022671.298403751:10(820-837)Online publication date: 19-Oct-2016
  • (2016)Chain: tasks and channels for reliable intermittent programsACM SIGPLAN Notices10.1145/3022671.298399551:10(514-530)Online publication date: 19-Oct-2016
  • (2016)First-class effect reflection for effect-guided programmingProceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2983990.2984037(820-837)Online publication date: 19-Oct-2016
  • (2016)Chain: tasks and channels for reliable intermittent programsProceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2983990.2983995(514-530)Online publication date: 19-Oct-2016
  • (2016)A type-and-effect system for asynchronous, typed eventsProceedings of the 15th International Conference on Modularity10.1145/2889443.2889446(42-53)Online publication date: 14-Mar-2016
  • (2015)A programming model for sustainable softwareProceedings of the 37th International Conference on Software Engineering - Volume 110.5555/2818754.2818847(767-777)Online publication date: 16-May-2015
  • (2015)A study on the most popular questions about concurrent programmingProceedings of the 6th Workshop on Evaluation and Usability of Programming Languages and Tools10.1145/2846680.2846687(39-46)Online publication date: 26-Oct-2015
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media