OCTET: Practical Concurrency Control for Dynamic Analyses and Systems

semanticscholar(2012)

引用 2|浏览0
暂无评分
摘要
Parallel programming is essential for reaping the benefits of parallel hardware, but it is notoriously difficult to develop and debug reliable, scalable software systems. One key challenge is that modern languages and systems provide poor support for ensuring concurrency correctness properties—such as atomicity, sequential consistency, and multithreaded determinism—because all existing approaches are impractical. Dynamic, software-based approaches slow programs by up to an order of magnitude because capturing cross-thread dependences (i.e., conflicting accesses) requires synchronization at every access to potentially shared memory. This paper introduces a new software-based concurrency control mechanism called OCTET that captures cross-thread dependences soundly but avoids synchronization at non-conflicting accesses. OCTET tracks the locality state of each potentially shared object. Non-conflicting accesses conform to the locality state and require no synchronization, but conflicting accesses require a state change with heavyweight synchronization. This optimistic tradeoff performs well for real-world concurrent programs, which by design execute relatively few conflicting accesses. We have implemented a prototype of OCTET in a high-performance Java virtual machine. Our evaluation demonstrates OCTET’s potential for capturing cross-thread dependences with overhead low enough for production systems. OCTET is an appealing and practical concurrency control mechanism for designing low-overhead, sound and precise analyses and systems that check and enforce concurrency correctness properties.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要