ACM Transactions on Programming Languages and Systems (TOPLAS)
The SPARC architecture manual (version 9)
The SPARC architecture manual (version 9)
Using k-exclusion to implement resilient, scalable shared objects (extended abstract)
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
Lock-free linked lists using compare-and-swap
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Simple, fast, and practical non-blocking and blocking concurrent queue algorithms
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Practical implementations of non-blocking synchronization primitives
PODC '97 Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing
Nonblocking algorithms and preemption-safe locking on multiprogrammed shared memory multiprocessors
Journal of Parallel and Distributed Computing
Universal Constructions for Large Objects
IEEE Transactions on Parallel and Distributed Systems
Proceedings of the twelfth annual ACM symposium on Parallel algorithms and architectures
A generational mostly-concurrent garbage collector
Proceedings of the 2nd international symposium on Memory management
Java without the coffee breaks: a nonintrusive multiprocessor garbage collector
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Proceedings of the twentieth annual ACM symposium on Principles of distributed computing
Proceedings of the 3rd international symposium on Memory management
High performance dynamic lock-free hash tables and list-based sets
Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures
Safe memory reclamation for dynamic lock-free objects using atomic reads and writes
Proceedings of the twenty-first annual symposium on Principles of distributed computing
Dynamic-sized lock-free data structures
Proceedings of the twenty-first annual symposium on Principles of distributed computing
Transactional lock-free execution of lock-based programs
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Speculative synchronization: applying thread-level speculation to explicitly parallel applications
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Enhancing software reliability with speculative threads
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
A Pragmatic Implementation of Non-blocking Linked-Lists
DISC '01 Proceedings of the 15th International Conference on Distributed Computing
Even Better DCAS-Based Concurrent Deques
DISC '00 Proceedings of the 14th International Conference on Distributed Computing
Non-blocking Synchronization and System Design
Non-blocking Synchronization and System Design
Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects
IEEE Transactions on Parallel and Distributed Systems
Bringing practical lock-free synchronization to 64-bit applications
Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing
Using elimination to implement scalable and lock-free FIFO queues
Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures
Landing openMP on cyclops-64: an efficient mapping of openMP to a many-core system-on-a-chip
Proceedings of the 3rd conference on Computing frontiers
Concurrent programming without locks
ACM Transactions on Computer Systems (TOCS)
Non-blocking Array-Based Algorithms for Stacks and Queues
ICDCN '09 Proceedings of the 10th International Conference on Distributed Computing and Networking
Progress guarantee for parallel programs via bounded lock-freedom
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
LFTHREADS: a lock-free thread library
ACM SIGARCH Computer Architecture News
Scalable nonblocking concurrent objects for mission critical code
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
LFTHREADS: a lock-free thread library
OPODIS'07 Proceedings of the 11th international conference on Principles of distributed systems
Simplifying concurrent algorithms by exploiting hardware transactional memory
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
Efficient lock free privatization
OPODIS'10 Proceedings of the 14th international conference on Principles of distributed systems
On the power of hardware transactional memory to simplify memory management
Proceedings of the 30th annual ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Lock-free dynamically resizable arrays
OPODIS'06 Proceedings of the 10th international conference on Principles of Distributed Systems
STM in the small: trading generality for performance in software transactional memory
Proceedings of the 7th ACM european conference on Computer Systems
On the implementation of concurrent objects
Dependable and Historic Computing
JANUS: exploiting parallelism via hindsight
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Universal constructions that ensure disjoint-access parallelism and wait-freedom
PODC '12 Proceedings of the 2012 ACM symposium on Principles of distributed computing
Drop the anchor: lightweight memory management for non-blocking data structures
Proceedings of the twenty-fifth annual ACM symposium on Parallelism in algorithms and architectures
The balancing act of choosing nonblocking features
Communications of the ACM
The Balancing Act of Choosing Nonblocking Features
Queue - Development
A survey of support for structured communication in concurrency control models
Journal of Parallel and Distributed Computing
Hi-index | 0.02 |
Conventional dynamic memory management methods interact poorly with lock-free synchronization. In this article, we introduce novel techniques that allow lock-free data structures to allocate and free memory dynamically using any thread-safe memory management library. Our mechanisms are lock-free in the sense that they do not allow a thread to be prevented from allocating or freeing memory by the failure or delay of other threads. We demonstrate the utility of these techniques by showing how to modify the lock-free FIFO queue implementation of Michael and Scott to free unneeded memory. We give experimental results that show that the overhead introduced by such modifications is moderate, and is negligible under low contention.