Proving a Non-Blocking Algorithm for Process Renaming with TLA+ - Archive ouverte HAL
Conference Papers Year : 2019

Proving a Non-Blocking Algorithm for Process Renaming with TLA+

Abstract

Shared-memory concurrent algorithms are well-known for being difficult to write, ill-adapted to test, and complex to prove. Wait-free concurrent objects are a subclass where a process is never prevented from progressing, whatever the other processes are doing (or not doing). Algorithms in this subclass are often non intuitive and among the most complex to prove. This paper presents the analysis and the proof of a wait-free concurrent algorithm that is used to rename processes. By its adaptive and non-blocking nature, the renaming algorithm resists to test, because of the cost of covering all its states and transitions even with a small input set. Thus, a proof has been conducted in Open image in new window and verified with TLAPS, the Open image in new window Proof System. This algorithm is itself based on the assembly of wait-free concurrent objects, the splitters, that separate processes. With just two shared variables and three assignments, a splitter seems a simple object but it is not linearizable. To avoid explicitly in-lining it and dealing with its internal state, the proof of the renaming algorithm relies on replacing the splitter with a sequential specification that is proved correct with TLAPS and verified complete by model-checking on finite instances.
Fichier principal
Vignette du fichier
hurault_24978.pdf (253.61 Ko) Télécharger le fichier
Origin Files produced by the author(s)
Loading...

Dates and versions

hal-02442015 , version 1 (16-01-2020)

Identifiers

  • HAL Id : hal-02442015 , version 1
  • OATAO : 24978

Cite

Aurélie Hurault, Philippe Quéinnec. Proving a Non-Blocking Algorithm for Process Renaming with TLA+. 13th International Conference on Tests and Proofs (TAP 2019), part of the 3rd World Congress on Formal Methods, Oct 2019, Porto, Portugal. pp.147-166. ⟨hal-02442015⟩
73 View
273 Download

Share

More