首页 | 本学科首页   官方微博 | 高级检索  
     


Performance of memory reclamation for lockless synchronization
Authors:Thomas E  Paul E  Angela Demke  Jonathan  
Affiliation:aDepartment of Computer Science, University of Toronto, Toronto, Ont., Canada M5S 2E4;bIBM Linux Technology Center, IBM Beaverton, Beaverton, OR 97006, USA;cDepartment of Computer Science, Portland State University, Portland, OR 97207-0751, USA
Abstract:Achieving high performance for concurrent applications on modern multiprocessors remains challenging. Many programmers avoid locking to improve performance, while others replace locks with non-blocking synchronization to protect against deadlock, priority inversion, and convoying. In both cases, dynamic data structures that avoid locking require a memory reclamation scheme that reclaims elements once they are no longer in use.The performance of existing memory reclamation schemes has not been thoroughly evaluated. We conduct the first fair and comprehensive comparison of three recent schemes—quiescent-state-based reclamation, epoch-based reclamation, and hazard-pointer-based reclamation—using a flexible microbenchmark. Our results show that there is no globally optimal scheme. When evaluating lockless synchronization, programmers and algorithm designers should thus carefully consider the data structure, the workload, and the execution environment, each of which can dramatically affect the memory reclamation performance.We discuss the consequences of our results for programmers and algorithm designers. Finally, we describe the use of one scheme, quiescent-state-based reclamation, in the context of an OS kernel—an execution environment which is well suited to this scheme.
Keywords:Lockless  Non-blocking  Memory reclamation  Hazard pointers  Read-copy update  Synchronization  Concurrency  Performance
本文献已被 ScienceDirect 等数据库收录!
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号