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.
- Linux memory protection. http://linux.about.com/library/cmd/blcmdl2 mprotect.htm, March 2008.Google Scholar
- Memory protection Windows. http://msdn2.microsoft.com/enus/library/aa366785(VS.85).aspx, March 2008.Google Scholar
- A. W. Appel and K. Li. Virtual Memory Primitives for User Programs. In Proc. of ASPLOS, pages 96--107, 1991. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- D. Engler and K. Ashcraft. Racerx: Effective, Static Detection of Race Conditions and Deadlocks. In Proc. of SOSP, pages 237--252, 2003. Google Scholar
Digital Library
- C. Flanagan and S. N. Freund. Automatic Synchronization Correction. In Electronic Proc. of SCOOL, 2005.Google Scholar
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- P. Ratanaworabhan, M. Burtscher, D. Kirovski, R. Nagpal, K. Pattabiraman, and B. Zorn Detecting and Tolerating Asymmetric Races. In Proc. of PPoPP, 2009. Google Scholar
Digital Library
- M. Naik, A. Aiken, and J. Whaley. Effective Static Race Detection for Java In Proc. of PLDI, pages 308--319, 2006. Google Scholar
Digital Library
- E. Pozniansky and A. Schuster. Efficient on-the-fly data Race Detection in Multithreaded C++ Programs. In Proc. of PPoPP, pages 179--190, 2003. Google Scholar
Digital Library
- P. Pratikakis, J. S. Foster, and M. Hicks. Locksmith: Context sensitive Correlation Analysis for Race Detection. In Proc. of PLDI, pages 320--331, 2006. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- E. Witchel, J. Cates, and K. Asanovi. Mondrian memory protection. In Proc. of ASPLOS, pages 304--316, 2002. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- P. Zhou, F. Qin, W. Liu, Y. Zhou, and J. Torrellas. iWatcher: Efficient Architectural Support for Software Debugging. In Proc. of ISCA, 2004. Google Scholar
Digital Library
- 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.Google Scholar
- M. Abadi, T. Harris, M. Mehrara. Transactional Memory with Strong Atomicity using off-the-shelf Memory Protection Hardware. In Proc. of PPoPP, 2009. Google Scholar
Digital Library
Index Terms
ISOLATOR: dynamically ensuring isolation in comcurrent programs
Recommendations
ISOLATOR: dynamically ensuring isolation in comcurrent programs
ASPLOS 2009In 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 ...
ISOLATOR: dynamically ensuring isolation in comcurrent programs
ASPLOS XIV: Proceedings of the 14th international conference on Architectural support for programming languages and operating systemsIn 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 ...
Enforcing isolation and ordering in STM
Proceedings of the 2007 PLDI conferenceTransactional memory provides a new concurrency control mechanism that avoids many of the pitfalls of lock-based synchronization. High-performance software transactional memory (STM) implementations thus far provide weak atomicity: Accessing shared data ...







Comments