2018
DOI: 10.1016/j.jpdc.2018.06.004
|View full text |Cite
|
Sign up to set email alerts
|

Nontrivial and universal helping for wait-free queues and stacks

Abstract: This paper studies two approaches to formalize helping in wait-free implementations of shared objects. The first approach is based on operation valency, and it allows us to make the important distinction between trivial and nontrivial helping. We show that a wait-free implementation of a queue from common2 objects (e.g., Test&Set) requires nontrivial helping. In contrast, there is a wait-free implementation of a stack from Common2 objects with only trivial helping. This separation might shed light on the diffi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
16
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
5
2
2

Relationship

2
7

Authors

Journals

citations
Cited by 13 publications
(16 citation statements)
references
References 16 publications
0
16
0
Order By: Relevance
“…Val[i]: register written by p i , holding a proposal, initially ⊥; 0 ≤ i < m Id[i]: register written by p i , holding its own id; initially ⊥; 0 ≤ i < m Set[i]: register written by p i , holding a set of process ids, initially ∅; 0 ≤ i < m there is no wait-free strongly-linearizable implementation of a monotonic counter [8], and, by reduction, neither of snapshots nor of max-registers. Queues and stacks do not have an n-process nonblocking strongly-linearizable implementation from objects whose readable versions have consensus number less than n [4].…”
Section: An Implementation Of Safe Agreementmentioning
confidence: 99%
“…Val[i]: register written by p i , holding a proposal, initially ⊥; 0 ≤ i < m Id[i]: register written by p i , holding its own id; initially ⊥; 0 ≤ i < m Set[i]: register written by p i , holding a set of process ids, initially ∅; 0 ≤ i < m there is no wait-free strongly-linearizable implementation of a monotonic counter [8], and, by reduction, neither of snapshots nor of max-registers. Queues and stacks do not have an n-process nonblocking strongly-linearizable implementation from objects whose readable versions have consensus number less than n [4].…”
Section: An Implementation Of Safe Agreementmentioning
confidence: 99%
“…We then consider how data structures use helping in the crash-stop model by adopting the definitions of linearization-helping [9] and universal-helping [5]. When considering an execution with two concurrent operations, the linearization of these operations dictates which operation take effect first.…”
Section: Contributionsmentioning
confidence: 99%
“…Censor-Hillel et al [9] formalized linearization-helping and showed that without it, certain objects called exact-order types lack wait-free linearizable implementations (assuming only read, write, compare-and-swap, fetch-and-add primitives) in the standard crash-stop shared memory model. Universal-helping and valency-helping were defined by Attiya et al [5]. Informally, it was shown in [5] that a non-blocking n-process linearizable implementation of a queue or a stack with universal-helping can be used to solve n-process consensus.…”
Section: Related Workmentioning
confidence: 99%
“…Therefore, there exists a strongly linearizable implementation of any type using atomic compare-and-swap objects, for example. On the other hand, Attiya, Castañeda, and Hendler [11] have shown that any wait-free strongly linearizable implementation of a queue or a stack for n processes along with atomic registers can solve n-process consensus. Hence, any n-process wait-free strongly linearizable implementation of a queue or stack cannot be implemented from base objects with consensus number less than n.…”
Section: Related Workmentioning
confidence: 99%