Non-Blocking Algorithms

Research output: Chapter in Book/Report/Conference proceedingEntry for encyclopedia/dictionarypeer-review

Abstract

Non-blocking algorithms are shared-memory multiprocessor algorithms that can avoid race conditions and guarantee correctness without using mutual exclusion locks. They are in general more resilient to asynchronous conditions than lock-based algorithms since they guarantee progress even if some of the threads participating in the algorithm are delayed for a long duration or even fail-stop. (The definition of the terms “non-blocking” and “lock-free” has changed in recent years, creating some terminology confusion. In the past, an algorithm was called “non-blocking” if it guaranteed global progress and “lock-free” if it did not rely on mutual exclusion locks. In recent years, most authors call an algorithm “lock-free” if it guarantees global progress and “non-blocking” if the delay of some threads cannot delay other threads indefinitely. This entry adopts the latter terminology since it is more widely used nowadays. Precise definitions are provided later in the sequel.)
Original languageAmerican English
Title of host publicationEncyclopedia of Parallel Computing
EditorsDavid Padua
PublisherSpringer New York
Pages1321-1329
Number of pages9
ISBN (Electronic)9780387097664
ISBN (Print)9780387097657
DOIs
StatePublished - Sep 2011

Cite this