Skip to main content
Log in

Waiting in concurrent algorithms

  • Published:
Computing Aims and scope Submit manuscript

Abstract

Between the two extremes, lock-based algorithms, which involve “a lot of waiting”, and wait-free algorithms, which are “free of locking and waiting”, there is an interesting spectrum of different levels of waiting. This unexplored spectrum is formally defined and its properties are investigated. New progress conditions, called k-waiting, for \(k\ge 0\), which are intended to capture the “amount of waiting” of processes in asynchronous concurrent algorithms, are introduced. To illustrate the utility of the new conditions, they are used to derive new lower and upper bounds, and impossibility results for well-known basic problems such as consensus, election, renaming and mutual exclusion. Furthermore, the relation between waiting and fairness is explored.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1

Similar content being viewed by others

Notes

  1. In the case of a beginning process, “its operation” means the operation that the process is about to start executing.

  2. A set of processes P is maximal with respect to property \(\phi \), if (1) P satisfies \(\phi \), and (2) there is no set Q, such that \(P \subset Q\) and Q satisfies \(\phi \).

References

  1. Anderson TE (1990) The performance of spin lock alternatives for shared-memory multiprocessor. IEEE Trans Parallel Distrib Syst 1(1):6–16

    Article  Google Scholar 

  2. Attiya H, Bar-Noy A, Dolev D, Koller D, Peleg D, Reischuk R (1990) Renaming in an asynchronous environment. J Assoc Comput Mach 37(3):524–548

    Article  MathSciNet  MATH  Google Scholar 

  3. Bar-Noy A, Dolev D (1989) Shared memory versus message-passing in an asynchronous distributed environment. In: Proceedings of the 8th ACM symposium on principles of distributed computing, pp 307–318

  4. Borowsky E, Gafni E (1993) Generalized FLP impossibility result for \(t\)-resilient asynchronous computations. In: Proceedings of the 25th ACM symposium on theory of computing, pp 91–100

  5. Burns JE, Peterson GL (1989) The ambiguity of choosing. In: Proceedings of the 8th ACM symposium on principles of distributed computing, pp 145–158

  6. Castaneda A, Rajsbaum S, Raynal M (2011) The renaming problem in shared memory systems: an introduction. Comput Sci Rev 5(3):229–251

    Article  MATH  Google Scholar 

  7. Dijkstra EW (1965) Solution of a problem in concurrent programming control. Commun ACM 8(9):569

    Article  Google Scholar 

  8. Dwork C, Herlihy MP, Waarts O (1997) Contention in shared memory algorithms. J ACM 44(6):779–805

    Article  MathSciNet  MATH  Google Scholar 

  9. Fischer MJ, Lynch NA, Paterson MS (1985) Impossibility of distributed consensus with one faulty process. J ACM 32(2):374–382

    Article  MathSciNet  MATH  Google Scholar 

  10. Herlihy M (1991) Impossibility results for asynchronous pram. In: Proceedings of the 3rd annual ACM symposium on parallel algorithms and architectures, pp 327–336

  11. Herlihy M, Shavit N On the nature of progress. In: 15th International conference on principles of distributed systems (OPODIS 2011), LNCS 7109. Springer, pp 313–328

  12. Herlihy MP (1991) Wait-free synchronization. ACM Trans Progr Lang Syst 13(1):124–149

    Article  Google Scholar 

  13. Herlihy MP, Luchangco V, Moir M (2003) Obstruction-free synchronization: double-ended queues as an example. In: Proceedings of the 23rd international conference on distributed computing systems, p 522

  14. Herlihy MP, Shavit N (1999) The topological structure of asynchronous computability. J ACM 46(6):858–923

    Article  MathSciNet  MATH  Google Scholar 

  15. Herlihy MP, Wing JM (1990) Linearizability: a correctness condition for concurrent objects. ACM Trans Progr Lang Syst 12(3):463–492

    Article  Google Scholar 

  16. Imbs D, Raynal M, Taubenfeld G (2010) On asymmetric progress conditions. In: Proceedings of the 29th ACM symposium on principles of distributed computing, pp 55–64

  17. Lamport L (1974) A new solution of Dijkstra’s concurrent programming problem. Commun ACM 17(8):453–455

    Article  MathSciNet  MATH  Google Scholar 

  18. Loui MC, Abu-Amara H (1987) Memory requirements for agreement among unreliable asynchronous processes. Adv Comput Res 4:163–183

    MathSciNet  Google Scholar 

  19. Moran S, Wolfstahl Y (1987) Extended impossibility results for asynchronous complete networks. Inf Process Lett 26(3):145–151

    Article  MathSciNet  Google Scholar 

  20. Saks M, Zaharoglou F (2000) Wait-free \(k\)-set agreement is impossible: the topology of public knowledge. SIAM J Comput 29:1449–1483

    Article  MathSciNet  MATH  Google Scholar 

  21. Styer E, Peterson GL (1989) Tight bounds for shared memory symmetric mutual exclusion problems. In: Proceedings of the 8th ACM symposium on principles of distributed computing, pp 177–191

  22. Taubenfeld G (2006) Synchronization algorithms and concurrent programming. Pearson/Prentice-Hall, p 423. ISBN 0-131-97259-6

  23. Taubenfeld G (Sept. 2010) The computational structure of progress conditions. In: 24th International symposium on distributed computing (DISC 2010). LNCS 6343 Springer 2010, pp. 221–235

  24. Taubenfeld G (2016) Fair synchronization. J Parallel Distrib Comput 97:1–10 (Also in: LNCS 8205, 2013, 179–193, DISC 2013)

  25. Taubenfeld G (2016) Waiting in concurrent algorithms. In: 4th International conference on networked systems (NETYS, 2016) Marrakech, Morocco. LNCS 9944, 2016, 345–360

  26. Taubenfeld G (2017) A closer look at fault tolerance. Theory Comput Syst (To appear) (Also In: Proceedings of PODC 2012, 261–270)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gadi Taubenfeld.

Additional information

A preliminary version of the results presented in this paper, appeared in 4th international conference on networked systems (NETYS 2016), Marrakech, Morocco, May 2016 [25].

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Taubenfeld, G. Waiting in concurrent algorithms. Computing 101, 39–57 (2019). https://doi.org/10.1007/s00607-018-0618-5

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00607-018-0618-5

Keywords

Mathematics Subject Classification

Navigation