Algorithms for mutual exclusion
Algorithms for mutual exclusion
A fast mutual exclusion algorithm
ACM Transactions on Computer Systems (TOCS)
Extended impossibility results for asynchronous complete networks
Information Processing Letters
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Impossibility of distributed consensus with one faulty process
Journal of the ACM (JACM)
Wait-free algorithms for fast, long-lived renaming
Science of Computer Programming
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Possibility and impossibility results in a shared memory environment
Acta Informatica
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
Efficient locking for concurrent operations on B-trees
ACM Transactions on Database Systems (TODS)
Concurrent manipulation of binary search trees
ACM Transactions on Database Systems (TODS)
Solution of a problem in concurrent programming control
Communications of the ACM
Speculative lock elision: enabling highly concurrent multithreaded execution
Proceedings of the 34th annual ACM/IEEE international symposium on Microarchitecture
Extendible hashing for concurrent operations and distributed data
PODS '83 Proceedings of the 2nd ACM SIGACT-SIGMOD symposium on Principles of database systems
Computing with Infinitely Many Processes
DISC '00 Proceedings of the 14th International Conference on Distributed Computing
A Pragmatic Implementation of Non-blocking Linked-Lists
DISC '01 Proceedings of the 15th International Conference on Distributed Computing
Process synchronization without long-term interlock
SOSP '71 Proceedings of the third ACM symposium on Operating systems principles
Obstruction-Free Synchronization: Double-Ended Queues as an Example
ICDCS '03 Proceedings of the 23rd International Conference on Distributed Computing Systems
Lock-free linked lists and skip lists
Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing
Advanced contention management for dynamic software transactional memory
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
Toward a theory of transactional contention managers
Proceedings of the twenty-fourth annual ACM symposium on Principles of distributed computing
Memory ordering in modern microprocessors, Part I
Linux Journal
Synchronization Algorithms and Concurrent Programming
Synchronization Algorithms and Concurrent Programming
How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs
IEEE Transactions on Computers
Why the grass may not be greener on the other side: a comparison of locking vs. transactional memory
Proceedings of the 4th workshop on Programming languages and operating systems
Timeliness-based wait-freedom: a gracefully degrading progress condition
Proceedings of the twenty-seventh ACM symposium on Principles of distributed computing
Making lockless synchronization fast: performance implications of memory reclamation
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Obstruction-Free algorithms can be practically wait-free
DISC'05 Proceedings of the 19th international conference on Distributed Computing
Computing with reads and writes in the absence of step contention
DISC'05 Proceedings of the 19th international conference on Distributed Computing
Efficient transformations of obstruction-free algorithms into non-blocking algorithms
DISC'07 Proceedings of the 21st international conference on Distributed Computing
On the Computational Power of Shared Objects
OPODIS '09 Proceedings of the 13th International Conference on Principles of Distributed Systems
On asymmetric progress conditions
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
The x-wait-freedom progress condition
EuroPar'10 Proceedings of the 16th international Euro-Par conference on Parallel processing: Part I
The computational structure of progress conditions
DISC'10 Proceedings of the 24th international conference on Distributed computing
On adaptive renaming under eventually limited contention
SSS'10 Proceedings of the 12th international conference on Stabilization, safety, and security of distributed systems
Looking for efficient implementations of concurrent objects
PaCT'11 Proceedings of the 11th international conference on Parallel computing technologies
On the implementation of concurrent objects
Dependable and Historic Computing
A practical wait-free simulation for lock-free data structures
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
Hi-index | 0.00 |
A contention-sensitive data structure is a concurrent data structure in which the overhead introduced by locking is eliminated in the common cases, when there is no contention, or when processes with non-interfering operations access it concurrently. When a process invokes an operation on a contentionsensitive data structure, in the absence of contention or interference, the process must be able to complete its operation in a small number of steps and without using locks. Using locks is permitted only when there is interference. We formally define the notion of contention-sensitive data structures, propose four general transformations that facilitate devising such data structures, and illustrate the benefits of the approach by implementing a contention-sensitive consensus algorithm, a contention-sensitive double-ended queue data structure, and a contention-sensitive election algorithm. Finally, we generalize the result to enable to avoid locking also when contention is low.