DocumentCode :
971168
Title :
Hazard pointers: safe memory reclamation for lock-free objects
Author :
Michael, Maged M.
Author_Institution :
IBM Thomas J. Watson Res. Center, Yorktown Heights, NY, USA
Volume :
15
Issue :
6
fYear :
2004
fDate :
6/1/2004 12:00:00 AM
Firstpage :
491
Lastpage :
504
Abstract :
Lock-free objects offer significant performance and reliability advantages over conventional lock-based objects. However, the lack of an efficient portable lock-free method for the reclamation of the memory occupied by dynamic nodes removed from such objects is a major obstacle to their wide use in practice. We present hazard pointers, a memory management methodology that allows memory reclamation for arbitrary reuse. It is very efficient, as demonstrated by our experimental results. It is suitable for user-level applications - as well as system programs - without dependence on special kernel or scheduler support. It is wait-free. It requires only single-word reads and writes for memory access in its core operations. It allows reclaimed memory to be returned to the operating system. In addition, it offers a lock-free solution for the ABA problem using only practical single-word instructions. Our experimental results on a multiprocessor system show that the new methodology offers equal and, more often, significantly better performance than other memory management methods, in addition to its qualitative advantages regarding memory reclamation and independence of special hardware support. We also show that lock-free implementations of important object types, using hazard pointers, offer comparable performance to that of efficient lock-based implementations under no contention and no multiprogramming, and outperform them by significant margins under moderate multiprogramming and/or contention, in addition to guaranteeing continuous progress and availability, even in the presence of thread failures and arbitrary delays.
Keywords :
data structures; multiprocessing systems; multiprogramming; operating system kernels; processor scheduling; storage management; synchronisation; arbitrary delay; concurrent programming; dynamic data structure; dynamic node; hazard pointers; lock-free object; memory management; multiprocessor system; multiprogramming; operating system; safe memory reclamation; scheduler support; single-word instruction; system program; thread failure; user-level application; Availability; Hardware; Hazards; Kernel; Memory management; Multiprocessing systems; Operating systems; Quality management; Read-write memory; Yarn; 65; Lock-free; concurrent programming; dynamic data structures.; memory management; multiprogramming; synchronization;
fLanguage :
English
Journal_Title :
Parallel and Distributed Systems, IEEE Transactions on
Publisher :
ieee
ISSN :
1045-9219
Type :
jour
DOI :
10.1109/TPDS.2004.8
Filename :
1291819
Link To Document :
بازگشت