Speculative Locks: Concurrent Execution of Critical Sections in Shared-Memory Multiprocessors*

Speculative Locks: Concurrent Execution of Critical Sections in Shared-Memory Multiprocessors*
复制标题

推测锁:共享内存多处理器中关键部分的并发执行*

DOI:
--
复制
发表时间:
2004
期刊:
影响因子:
--
通讯作者:
J. Torrellas
J. Torrellas
中科院分区:
--
文献类型:
--
作者:
José F. Martínez;J. Torrellas

文献摘要

被引文献

相似文献

多线程应用程序通常在需要时使用粗粒度或细粒度锁来强制同步。虽然细粒度同步支持更高的并发性,但它通常比粗粒度同步涉及更多的编程工作。为了解决这一权衡问题,本章提出了投机性锁。在推测锁中,线程在不同步的情况下访问临界区,而底层硬件监视冲突的访问。如果检测到冲突,线程将被回滚并在运行中重新启动。活动锁中的前进进度由始终存在的非推测锁所有者来保证,并且允许所有者和推测线程之间的所有有序冲突。总体而言,推测锁允许粗粒度同步的可编程性,同时支持细粒度同步的并发。
Multithreaded applications typically use coarse- or fine-grain locks to enforce synchronization when needed. While fine-grain synchronization enables higher concurrency, it often involves significantly more programming effort than coarsegrain synchronization. To address this trade-off, this chapter proposes speculative locks. In speculative locks, threads access a critical section without synchronizing while the underlying hardware monitors for conflicting accesses. If a conflict is detected, threads are rolled back and restarted on the fly. Forward progress in an active lock is guaranteed by the presence of a nonspeculative lock owner at all times, and all in-order conflicts between owner and speculative threads are tolerated. Overall, speculative locks allow the programmability of coarse-grain synchronization, while enabling the concurrency of fine-grain synchronization.