master-degree-notes/Concurrent Systems/notes/8 - Enhancing Liveness Properties.md

763 B

Can we take the most basic protocol that satisfies the most basic liveness property (obstruction freedom) and "upgrade" it to bounded wait freedom?

Contention manager: is an object that allows progress of processes by providing contention-free periods for completing their invocations. It provides 2 operations:

  • need_help(i): invoked by p_i when it discovers that there is contention
  • stop_help(i): invoked by p_{i} when it terminates its current invocation

Enriched implementation: when a process realizes that there is contention, it invokes need_help; when it completes its current operation, it invokes stop_help.

Why is it different from lock/unlock? Because this allows failures, and they can also happen in the contention-free period.