Test-and-Set in Optimal Space

被引:5
|
作者
Giakkoupis, George [1 ]
Helmi, Maryam [2 ]
Higham, Lisa [2 ]
Woelfel, Philipp [2 ]
机构
[1] INRIA Rennes, Rennes, France
[2] Univ Calgary, Calgary, AB, Canada
基金
加拿大自然科学与工程研究理事会;
关键词
Shared Memory Model; Test-and-Set Algorithm; Space Complexity; Obstruction-free; BOUNDS;
D O I
10.1145/2746539.2746627
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
The test-and-set object is a fundamental synchronization primitive for shared memory systems. This paper addresses the number of registers (supporting atomic reads and writes) required to implement a one-shot test-and-set object in the standard asynchronous shared memory model with n processes. The best lower bound is log n - 1 [12, 21] for obstruction-free and deadlock-free implementations, and recently a deterministic obstruction-free implementation using O(root n) registers was presented [11]. This paper closes the gap between these existing upper and lower bounds by presenting a deterministic obstruction free implementation of a one-shot test-and-set object from Theta(logn) registers of size Theta(logn) bits. Combining our obstruction-free algorithm with techniques from previous research [11, 12], we also obtain a randomized wait-free test and -set algorithm from Theta(logn) registers, with expected step-complexity Theta(log* n) against the oblivious adversary. The core tool in our algorithm is the implementation of a deterministic obstruction-free sifter object, using only 6 registers. If k processes access a sifter, then when they have terminated, at least one and at most [(2k + 1)/3] processes return "win" and all others return "lose".
引用
收藏
页码:615 / 623
页数:9
相关论文
共 50 条