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 ScholarDigital 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 ScholarDigital Library
- D. Engler and K. Ashcraft. Racerx: Effective, Static Detection of Race Conditions and Deadlocks. In Proc. of SOSP, pages 237--252, 2003. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- M. Naik, A. Aiken, and J. Whaley. Effective Static Race Detection for Java In Proc. of PLDI, pages 308--319, 2006. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital Library
- E. Witchel, J. Cates, and K. Asanovi. Mondrian memory protection. In Proc. of ASPLOS, pages 304--316, 2002. Google ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 ScholarDigital 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 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 ...
Hardware-enforced fine-grained isolation of untrusted code
SecuCode '09: Proceedings of the first ACM workshop on Secure execution of untrusted codeWe present a novel combination of hardware (architecture) and software (compiler) techniques to support the safe execution of untrusted code. While other efforts focus on isolating processes, our approach isolates code and data at a function (as in, C ...
Comments