skip to main content
10.1145/1508244.1508266acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article

ISOLATOR: dynamically ensuring isolation in comcurrent programs

Published: 07 March 2009 Publication History

Abstract

In this paper, we focus on concurrent programs that use locks to achieve isolation of data accessed by critical sections of code. We present ISOLATOR, an algorithm that guarantees isolation for well-behaved threads of a program that obey a locking discipline even in the presence of ill-behaved threads that disobey the locking discipline. ISOLATOR uses code instrumentation, data replication, and virtual memory protection to detect isolation violations and delays ill-behaved threads to ensure isolation. Our instrumentation scheme requires access only to the code of well-behaved threads. We have evaluated ISOLATOR on several benchmark programs and found that ISOLATOR can ensure isolation with reasonable runtime overheads. In addition, we present three general desiderata - safety, isolation, and permissiveness - for any scheme that attempts to ensure isolation, and formally prove that ISOLATOR satisfies all of these desiderata.

References

[1]
Linux memory protection. http://linux.about.com/library/cmd/blcmdl2 mprotect.htm, March 2008.
[2]
Memory protection Windows. http://msdn2.microsoft.com/enus/library/aa366785(VS.85).aspx, March 2008.
[3]
A. W. Appel and K. Li. Virtual Memory Primitives for User Programs. In Proc. of ASPLOS, pages 96--107, 1991.
[4]
L. Baugh, N. Neelakanthan, and C. Zilles. Using Hardware Memory Protection to build a high-performance, strongly atomic Hybrid Transactional Memory. In Proc of ISCA, 2008.
[5]
D. Engler and K. Ashcraft. Racerx: Effective, Static Detection of Race Conditions and Deadlocks. In Proc. of SOSP, pages 237--252, 2003.
[6]
C. Flanagan and S. N. Freund. Automatic Synchronization Correction. In Electronic Proc. of SCOOL, 2005.
[7]
B. Krena, Z. Letko, R. Tzoref, S. Ur, and T. Vojnar. Healing Data Races on-the-fly. In Proc. of PADTAD, pages 54--64, 2007.
[8]
V. B. Lvin, G. Novark, E. D. Berger, and B. G. Zorn. Archipelago: trading address space for reliability and security. In Proc. of ASPLOS, pages 115--124, 2008.
[9]
P. Ratanaworabhan, M. Burtscher, D. Kirovski, R. Nagpal, K. Pattabiraman, and B. Zorn Detecting and Tolerating Asymmetric Races. In Proc. of PPoPP, 2009.
[10]
M. Naik, A. Aiken, and J. Whaley. Effective Static Race Detection for Java In Proc. of PLDI, pages 308--319, 2006.
[11]
E. Pozniansky and A. Schuster. Efficient on-the-fly data Race Detection in Multithreaded C++ Programs. In Proc. of PPoPP, pages 179--190, 2003.
[12]
P. Pratikakis, J. S. Foster, and M. Hicks. Locksmith: Context sensitive Correlation Analysis for Race Detection. In Proc. of PLDI, pages 320--331, 2006.
[13]
S. Savage, M. Burrows, G. Nelson, P. Sobalvarro, and T. Anderson. Eraser: A Dynamic Data Race Detector for Multithreaded Programs. ACM Transactions on Computer Systems (TOCS), 15(4):391--411, 1997.
[14]
T. Shpeisman, V. Menon, A.-R. Adl-Tabatabai, S. Balensiefer, D. Grossman, R. L. Hudson, K. F. Moore, and B. Saha. Enforcing Isolation and Ordering in STM In Proc. of PLDI, pages 78--88, 2007.
[15]
E. Witchel, J. Cates, and K. Asanovi. Mondrian memory protection. In Proc. of ASPLOS, pages 304--316, 2002.
[16]
Y. Yu, T. Rodeheffer, and W. Chen. RaceTrack: Efficient Detection of Data race Conditions via Adaptive Tracking. In Proc. of SOSP, pages 221--234, 2005.
[17]
P. Zhou, F. Qin, W. Liu, Y. Zhou, and J. Torrellas. iWatcher: Efficient Architectural Support for Software Debugging. In Proc. of ISCA, 2004.
[18]
S Rajamani, G. Ramalingam, V. P. Ranganath and K. Vaswani. Isolator: Dynamically Ensuring Isolation in Concurrent Programs. Technical Report MSR-TR-2008-91, Microsoft Research, 2008.
[19]
M. Abadi, T. Harris, M. Mehrara. Transactional Memory with Strong Atomicity using off-the-shelf Memory Protection Hardware. In Proc. of PPoPP, 2009.

Cited By

View all
  • (2021)Kard: lightweight data race detection with per-thread memory protectionProceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3445814.3446727(647-660)Online publication date: 19-Apr-2021
  • (2019)CLOTHO: directed test generation for weakly consistent database systemsProceedings of the ACM on Programming Languages10.1145/33605433:OOPSLA(1-28)Online publication date: 10-Oct-2019
  • (2019)Tuning lock-based multicore program based on sliding windows to tolerate data raceThe Journal of Supercomputing10.1007/s11227-019-02921-7Online publication date: 6-Jun-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASPLOS XIV: Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
March 2009
358 pages
ISBN:9781605584065
DOI:10.1145/1508244
  • cover image ACM SIGARCH Computer Architecture News
    ACM SIGARCH Computer Architecture News  Volume 37, Issue 1
    ASPLOS 2009
    March 2009
    346 pages
    ISSN:0163-5964
    DOI:10.1145/2528521
    Issue’s Table of Contents
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 44, Issue 3
    ASPLOS 2009
    March 2009
    346 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1508284
    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: 07 March 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurreny
  2. isolation
  3. memory protection

Qualifiers

  • Research-article

Conference

ASPLOS09

Acceptance Rates

Overall Acceptance Rate 535 of 2,713 submissions, 20%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Kard: lightweight data race detection with per-thread memory protectionProceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3445814.3446727(647-660)Online publication date: 19-Apr-2021
  • (2019)CLOTHO: directed test generation for weakly consistent database systemsProceedings of the ACM on Programming Languages10.1145/33605433:OOPSLA(1-28)Online publication date: 10-Oct-2019
  • (2019)Tuning lock-based multicore program based on sliding windows to tolerate data raceThe Journal of Supercomputing10.1007/s11227-019-02921-7Online publication date: 6-Jun-2019
  • (2018)A systematic survey on automated concurrency bug detection, exposing, avoidance, and fixing techniquesSoftware Quality Journal10.1007/s11219-017-9385-326:3(855-889)Online publication date: 1-Sep-2018
  • (2017)Repairing event race errors by controlling nondeterminismProceedings of the 39th International Conference on Software Engineering10.1109/ICSE.2017.34(289-299)Online publication date: 20-May-2017
  • (2015)Valor: efficient, software-only region conflict exceptionsACM SIGPLAN Notices10.1145/2858965.281429250:10(241-259)Online publication date: 23-Oct-2015
  • (2015)Valor: efficient, software-only region conflict exceptionsProceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2814270.2814292(241-259)Online publication date: 23-Oct-2015
  • (2014)FlintACM SIGPLAN Notices10.1145/2714064.266021749:10(543-560)Online publication date: 15-Oct-2014
  • (2014)FlintProceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications10.1145/2660193.2660217(543-560)Online publication date: 15-Oct-2014
  • (2014)Grail: context-aware fixing of concurrency bugsProceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering10.1145/2635868.2635881(318-329)Online publication date: 11-Nov-2014
  • Show More Cited By

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