MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the minimal synchronism needed for distributed consensus
Journal of the ACM (JACM)
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
On processor coordination using asynchronous hardware
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
The elusive atomic register revisited
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Constructing multi-reader atomic values from non-atomic values
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
A protocol for wait-free, atomic, multi-reader shared variables
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Constructing two-writer atomic registers
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Consensus in the presence of partial synchrony
Journal of the ACM (JACM)
Impossibility and universality results for wait-free synchronization
PODC '88 Proceedings of the seventh annual ACM Symposium on Principles of distributed computing
Concurrent operations on priority queues
Communications of the ACM
Sticky bits and universality of consensus
Proceedings of the eighth annual ACM Symposium on Principles of distributed computing
Impossibility of distributed consensus with one faulty process
Journal of the ACM (JACM)
Concurrent set manipulation without locking
Proceedings of the seventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Efficient locking for concurrent operations on B-trees
ACM Transactions on Database Systems (TODS)
The serializability of concurrent database updates
Journal of the ACM (JACM)
Concurrent operations on B-trees with overtaking
PODS '85 Proceedings of the fourth ACM SIGACT-SIGMOD symposium on Principles of database systems
Concepts and Notations for Concurrent Programming
ACM Computing Surveys (CSUR)
Concurrent Reading While Writing
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specifying Concurrent Program Modules
ACM Transactions on Programming Languages and Systems (TOPLAS)
Concurrent reading and writing
Communications of the ACM
Concurrency control mechanisms and the serializability of concurrent tree algorithms
PODS '84 Proceedings of the 3rd ACM SIGACT-SIGMOD symposium on Principles of database systems
STOC '83 Proceedings of the fifteenth annual ACM symposium on Theory of computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Wait-free parallel algorithms for the union-find problem
STOC '91 Proceedings of the twenty-third annual ACM symposium on Theory of computing
Algorithms for scalable synchronization on shared-memory multiprocessors
ACM Transactions on Computer Systems (TOCS)
Process coordination with fetch-and-increment
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
Synchronization without contention
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
Scalable reader-writer synchronization for shared-memory multiprocessors
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
A simple and correct shared-queue algorithm using compare-and-swap
Proceedings of the 1990 ACM/IEEE conference on Supercomputing
Randomized wait-free concurrent objects (extended abstract)
PODC '91 Proceedings of the tenth annual ACM symposium on Principles of distributed computing
Lock-free garbage collection for multiprocessors
SPAA '91 Proceedings of the third annual ACM symposium on Parallel algorithms and architectures
Impossibility results for asynchronous PRAM (extended abstract)
SPAA '91 Proceedings of the third annual ACM symposium on Parallel algorithms and architectures
Scheduler activations: effective kernel support for the user-level management of parallelism
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
STOC '92 Proceedings of the twenty-fourth annual ACM symposium on Theory of computing
Performance issues in non-blocking synchronization on shared-memory multiprocessors
PODC '92 Proceedings of the eleventh annual ACM symposium on Principles of distributed computing
Designing synchronous algorithms for asynchronous processors
SPAA '92 Proceedings of the fourth annual ACM symposium on Parallel algorithms and architectures
Primitives for asynchronous list compression
SPAA '92 Proceedings of the fourth annual ACM symposium on Parallel algorithms and architectures
Low-overhead scheduling of nested parallelism
IBM Journal of Research and Development
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Scheduler activations: effective kernel support for the user-level management of parallelism
ACM Transactions on Computer Systems (TOCS)
ACM Transactions on Software Engineering and Methodology (TOSEM)
Waiting algorithms for synchronization in large-scale multiprocessors
ACM Transactions on Computer Systems (TOCS)
A methodology for implementing highly concurrent data objects
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
A method for implementing lock-free shared-data structures
SPAA '93 Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures
Lazy updates for distributed search structure
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
Distributing a search tree among a growing number of processors
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Wait-freedom vs. bounded wait-freedom in public data structures (extended abstract)
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
A performance evaluation of lock-free synchronization protocols
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
A time-sensitive object model for real-time systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
STOC '95 Proceedings of the twenty-seventh annual ACM symposium on Theory of computing
After you, Alfonse: a mutual exclusion toolkit
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
Thread scheduling for multiprogrammed multiprocessors
Proceedings of the tenth annual ACM symposium on Parallel algorithms and architectures
Empirical studies of competitve spinning for a shared-memory multiprocessor
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
The Architecture of the Dalí Main-Memory Storage Manager
Multimedia Tools and Applications
Multiple Reservations and the Oklahoma Update
IEEE Parallel & Distributed Technology: Systems & Technology
A Nonblocking Algorithm for Shared Queues Using Compare-and-Swap
IEEE Transactions on Computers
Characterizing the Performance of Algorithms for Lock-Free Objects
IEEE Transactions on Computers
Lock-Free Garbage Collection for Multiprocessors
IEEE Transactions on Parallel and Distributed Systems
Public data structures: counters as a special case
Theoretical Computer Science
The Impact of Timing on Linearizability in Counting Networks
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
Improving Wait-Free Algorithms for Interprocess Communication in Embedded Real-Time Systems
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Wait-free concurrent memory management by create and read until deletion (CaRuD)
Distributed Computing
Linearizable counting networks
Distributed Computing
Wait-free linearization with an assertional proof
Distributed Computing
Lightweight lock-free synchronization methods for multithreading
Proceedings of the 20th annual international conference on Supercomputing
A revisitation of kernel synchronization schemes
ATEC '97 Proceedings of the annual conference on USENIX Annual Technical Conference
Fast interrupt priority management in operating system kernels
moas'93 USENIX Symposium on USENIX Microkernels and Other Kernel Architectures Symposium - Volume 4
Extending futex for kernel to user notification
ACM SIGOPS Operating Systems Review - Research and developments in the Linux kernel
Associative Parallel Containers in STAPL
Languages and Compilers for Parallel Computing
Verification and semantic parallelization of goal-driven autonomous software
Autonomics '08 Proceedings of the 2nd International Conference on Autonomic Computing and Communication Systems
Evaluation of AMD's advanced synchronization facility within a complete transactional memory stack
Proceedings of the 5th European conference on Computer systems
A universal construction for wait-free transaction friendly data structures
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
Non-blocking binary search trees
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
ASF: AMD64 Extension for Lock-Free Data Structures and Transactional Memory
MICRO '43 Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture
Cruiser: concurrent heap buffer overflow monitoring using lock-free data structures
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Concurrent tries with efficient non-blocking snapshots
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Lock-Free parallel algorithms: an experimental study
HiPC'04 Proceedings of the 11th international conference on High Performance Computing
HICAMP: architectural support for efficient concurrency-safe shared structured data access
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Adaptive software transactional memory
DISC'05 Proceedings of the 19th international conference on Distributed Computing
Universal constructions that ensure disjoint-access parallelism and wait-freedom
PODC '12 Proceedings of the 2012 ACM symposium on Principles of distributed 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.01 |
A concurrent object is a data structure shared by concurrent processes. Conventional techniques for implementing concurrent objects typically rely on critical sections: ensuring that only one process at a time can operate on the object. Nevertheless, critical sections are poorly suited for asynchronous systems: if one process is halted or delayed in a critical section, other, non-faulty processes will be unable to progress. By contrast, a concurrent object implementation is non-blocking if it always guarantees that some process will complete an operation in a finite number of steps, and it is wait-free if it guarantees that each process will complete an operation in a finite number of steps. This paper proposes a new methodology for constructing non-blocking and wait-free implementations of concurrent objects. The object's representation and operations are written as stylized sequential programs, with no explicit synchronization. Each sequential operation is automatically transformed into a non-blocking or wait-free operation using novel synchronization and memory management algorithms. These algorithms are presented for a multiple instruction/multiple data (MIMD) architecture in which n processes communicate by applying read, write, and compare&swap operations to a shared memory.