Shared-memory vs. message-passing in an asynchronous distributed environment
Proceedings of the eighth annual ACM Symposium on Principles of distributed computing
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Renaming in an asynchronous environment
Journal of the ACM (JACM)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modula-3
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
A methodology for implementing highly concurrent data objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
A method for implementing lock-free shared-data structures
SPAA '93 Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures
ACM Transactions on Programming Languages and Systems (TOPLAS)
A performance evaluation of lock-free synchronization protocols
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
Real-time computing with lock-free shared objects
ACM Transactions on Computer Systems (TOCS)
Distributed Algorithms
Algorithms + Data Structures = Programs
Algorithms + Data Structures = Programs
Fault-Tolerant Parallel Computation
Fault-Tolerant Parallel Computation
High performance dynamic lock-free hash tables and list-based sets
Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures
Transactional lock-free execution of lock-based programs
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Lock-Free Garbage Collection for Multiprocessors
IEEE Transactions on Parallel and Distributed Systems
Modeling and verification of parallel processes
Modeling and verification of parallel processes
Split-ordered lists: lock-free extensible hash tables
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Scalable and lock-free concurrent dictionaries
Proceedings of the 2004 ACM symposium on Applied computing
An algorithm for the asynchronous Write-All problem based on process collision
Distributed Computing
Wait-free concurrent memory management by create and read until deletion (CaRuD)
Distributed Computing
Proving correctness of highly-concurrent linearisable objects
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
ATerms for manipulation and exchange of structured data: It's all about sharing
Information and Software Technology
Lock-free parallel and concurrent garbage collection by mark&sweep
Science of Computer Programming
A general lock-free algorithm using compare-and-swap
Information and Computation
Experience distributing objects in an SMMP OS
ACM Transactions on Computer Systems (TOCS)
Shape-Value Abstraction for Verifying Linearizability
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Nonblocking algorithms and backward simulation
DISC'09 Proceedings of the 23rd international conference on Distributed computing
Temporal logic verification of lock-freedom
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Parallel implementations of Brunotte's algorithm
Journal of Parallel and Distributed Computing
Minimal perfect hashing: A competitive method for indexing internal memory
Information Sciences: an International Journal
Resizable, scalable, concurrent hash tables via relativistic programming
USENIXATC'11 Proceedings of the 2011 USENIX conference on USENIX annual technical conference
Scalable hashing for shared memory supercomputers
Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis
Incremental verification of owicki/gries proof outlines using PVS
ICFEM'05 Proceedings of the 7th international conference on Formal Methods and Software Engineering
Simplifying linearizability proofs with reduction and abstraction
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Hi-index | 0.00 |
We present an efficient lock-free algorithm for parallel accessible hash tables with open addressing, which promises more robust performance and reliability than conventional lock-based implementations. "Lock-free" means that it is guaranteed that always at least one process completes its operation within a bounded number of steps. For a single processor architecture our solution is as efficient as sequential hash tables. On a multiprocessor architecture this is also the case when all processors have comparable speeds. The algorithm allows processors that have widely different speeds or come to a halt. It can easily be implemented using C-like languages and requires on average only constant time for insertion, deletion or accessing of elements. The algorithm allows the hash tables to grow and shrink when needed.Lock-free algorithms are hard to design correctly, even when apparently straightforward. Ensuring the correctness of the design at the earliest possible stage is a major challenge in any responsible system development. In view of the complexity of the algorithm, we turned to the interactive theorem prover PVS for mechanical support. We employ standard deductive verification techniques to prove around 200 invariance properties of our algorithm, and describe how this is achieved with the theorem prover PVS.