Efficiently implementing LL/SC objects shared by an unknown number of processes

  • Authors:
  • Prasad Jayanti;Srdjan Petrovic

  • Affiliations:
  • Department of Computer Science, Dartmouth College, Hanover, New Hampshire;Department of Computer Science, Dartmouth College, Hanover, New Hampshire

  • Venue:
  • IWDC'05 Proceedings of the 7th international conference on Distributed Computing
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Over the past decade, a pair of instructions called load-linked (LL) and store-conditional (SC) have emerged as the most suitable synchronization instructions for the design of lock-free algorithms. However, current architectures do not support these instructions; instead, they support either CAS (e.g., UltraSPARC, Itanium) or restricted versions of LL/SC (e.g., POWER4, MIPS, Alpha). To bridge this gap, a flurry of algorithms that implement LL/SC from CAS have appeared in the literature. Some of these algorithms assume that N, the maximum number of participating processes, is fixed and known in advance. Others make no such assumption, but are either non-blocking (not wait-free), implement small LL/SC objects, or require that a process performs O(N) work to join the algorithm. Specifically, no constant-time, word-sized, wait-free LL/SC algorithm that does not require the knowledge of N exists. In this paper, we present such an algorithm.