Here, we propose a new approach to design non-blocking algorithms that can apply multiple changes to a shared data structure atomically using Compare&Swap (CAS) instructions. We applied our approach to two data structures, doubly-linked lists and Patricia tries. In our implementations, only update operations perform CAS instructions; operations other than updates perform only reads of shared memory. Our doubly-linked list implements a novel specification that is designed to make it easy to use as a black box in a concurrent setting. In our doubly-linked list implementation, each process accesses the list via a cursor, which is an object in the process's local memory that is located at an item in the list. Our specification describes how...
Concurrent data structures and algorithms are becoming more relevant with the increase of the number...
Abstract. Work on non-blocking data structures has proposed extend-ing processor designs with a comp...
An increasing number of modern real-time systems and the nowadays ubiquitous multicore architectures...
We present a new non-blocking doubly-linked list implementation for an asynchronous shared-memory sy...
We present a non-blocking lock-free implementation of skip list data structure using multi word comp...
To maximize the performance of concurrent data structures, researchers have turned to highly complex...
The current literature offers two extremes of nonblocking software synchronization support for concu...
We present a non-blocking algorithm for a concurrent heap in asynchronous shared memory multiprocess...
Concurrent data structures lie at the heart of modern parallel programs. The design and implementati...
We present a non-blocking implementation for the concurrent Heap data structure in the asynchronous ...
Abstract. Work on non-blocking data structures has proposed extend-ing processor designs with a comp...
This thesis deals with how to design and implement efficient, practical and reliable concurrent data...
We define a new set of primitive operations that greatly sim-plify the implementation of non-blockin...
Modern computer systems often involve multiple processes or threads of control that communicate thro...
An important class of concurrent objects are those that are non-blocking, that is, whose operations ...
Concurrent data structures and algorithms are becoming more relevant with the increase of the number...
Abstract. Work on non-blocking data structures has proposed extend-ing processor designs with a comp...
An increasing number of modern real-time systems and the nowadays ubiquitous multicore architectures...
We present a new non-blocking doubly-linked list implementation for an asynchronous shared-memory sy...
We present a non-blocking lock-free implementation of skip list data structure using multi word comp...
To maximize the performance of concurrent data structures, researchers have turned to highly complex...
The current literature offers two extremes of nonblocking software synchronization support for concu...
We present a non-blocking algorithm for a concurrent heap in asynchronous shared memory multiprocess...
Concurrent data structures lie at the heart of modern parallel programs. The design and implementati...
We present a non-blocking implementation for the concurrent Heap data structure in the asynchronous ...
Abstract. Work on non-blocking data structures has proposed extend-ing processor designs with a comp...
This thesis deals with how to design and implement efficient, practical and reliable concurrent data...
We define a new set of primitive operations that greatly sim-plify the implementation of non-blockin...
Modern computer systems often involve multiple processes or threads of control that communicate thro...
An important class of concurrent objects are those that are non-blocking, that is, whose operations ...
Concurrent data structures and algorithms are becoming more relevant with the increase of the number...
Abstract. Work on non-blocking data structures has proposed extend-ing processor designs with a comp...
An increasing number of modern real-time systems and the nowadays ubiquitous multicore architectures...