How to share a data structure: A fast timing-based solution∗

Rajeev Alur, Gadi Taubenfeld · 2006

We consider the problem of transforming a given sequential implementation of a data structure into a wait-free concurrent implementation. Given the code for different operations of a data structure that is designed to work under the assumption that only a single process accesses it, we want to construct an implementation that works correctly in a concurrent environment where it may be accessed by many processes. We assume a shared memory model with atomic registers. It is well known that, in asynchronous systems, using atomic read/write registers only, it is impossible to construct concurrent implementations of even very simple objects such as test-and-set bits. We show that the knowledge about relative speeds of processes can be used for such implementations. We assume that there is a known upper bound on the time taken by the slowest process to execute a statement involving an access to the shared memory. This timing assumption is very powerful and enables us to construct fast wait-f...

Read the paper · More papers on PaperTik