Wait-Free Stabilizing Dining Using Regular Registers

  • Srikanth Sastry
  • Jennifer L. Welch
  • Josef Widder
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7702)


Dining philosophers is a scheduling paradigm that determines when processes in a distributed system should execute certain sections of their code so that processes do not execute ‘conflicting’ code sections concurrently, for some application-dependent notion of a ‘conflict’. Designing a stabilizing dining algorithm for shared-memory systems subject to process crashes presents an interesting challenge: classic stabilization relies on all processes continuing to execute actions forever, an assumption which is violated when crash failures are considered. We present a dining algorithm that is both wait-free (tolerates any number of crashes) and is pseudo-stabilizing. Our algorithm works in an asynchronous system in which processes communicate via shared regular registers and have access to the eventually perfect failure detector \(\diamondsuit \mathcal{P}\). Furthermore, with a stronger failure detector, the solution becomes wait-free and self-stabilizing. To our knowledge, this is the first such algorithm. Prior results show that \(\diamondsuit \mathcal{P}\) is necessary for wait-freedom.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Antonoiu, G., Srimani, P.K.: Mutual Exclusion Between Neighboring Nodes in an Arbitrary System Graph Tree That Stabilizes Using Read/Write Atomicity. In: Amestoy, P.R., Berger, P., Daydé, M., Duff, I.S., Frayssé, V., Giraud, L., Ruiz, D. (eds.) Euro-Par 1999. LNCS, vol. 1685, pp. 823–830. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  2. 2.
    Beauquier, J., Datta, A.K., Gradinariu, M., Magniette, F.: Self-stabilizing local mutual exclusion and daemon refinement. Chicago Journal of Theortical Computer Science 2002(1) (2002)Google Scholar
  3. 3.
    Beauquier, J., Kekkonen-Moneta, S.: Fault-tolerance and self-stabilization: impossibility results and solutions using self-stabilizing failure detectors. International Journal of Systems Science 28(11), 1177–1187 (1997)MATHCrossRefGoogle Scholar
  4. 4.
    Burns, J.E., Gouda, M.G., Miller, R.E.: Stabilization and pseudo-stabilization. Distributed Computing 7(1), 35–42 (1993)MATHCrossRefGoogle Scholar
  5. 5.
    Cantarell, S., Datta, A.K., Petit, F.: Self-Stabilizing Atomicity Refinement Allowing Neighborhood Concurrency. In: Huang, S.-T., Herman, T. (eds.) SSS 2003. LNCS, vol. 2704, pp. 102–112. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  6. 6.
    Chandra, T.D., Toueg, S.: Unreliable failure detectors for reliable distributed systems. J. ACM 43(2), 225–267 (1996)MathSciNetMATHCrossRefGoogle Scholar
  7. 7.
    Choy, M., Singh, A.K.: Localizing failures in distributed synchronization. IEEE Transactions on Parallel and Distributed Systems 7(7), 705–716 (1996)CrossRefGoogle Scholar
  8. 8.
    Delporte-Gallet, C., Devismes, S., Fauconnier, H.: Robust Stabilizing Leader Election. In: Masuzawa, T., Tixeuil, S. (eds.) SSS 2007. LNCS, vol. 4838, pp. 219–233. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  9. 9.
    Delporte-Gallet, C., Fauconnier, H., Guerraoui, R., Kouznetsov, P.: Mutual exclusion in asynchronous systems with failure detectors. Journal of Parallel and Distributed Computing 65(4), 492–505 (2005)MATHCrossRefGoogle Scholar
  10. 10.
    Dijkstra, E.W.: Solution of a problem in concurrent programming control. Communications of the ACM 8(9), 569 (1965)CrossRefGoogle Scholar
  11. 11.
    Dijkstra, E.W.: Self-stabilizing systems in spite of distributed control. Communications of the ACM 17(11), 643–644 (1974)MATHCrossRefGoogle Scholar
  12. 12.
    Dijkstra, E.W.: Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM 18(8), 453–457 (1975)MathSciNetMATHCrossRefGoogle Scholar
  13. 13.
    Dolev, S.: Self-Stabilization. MIT Press (2000)Google Scholar
  14. 14.
    Dolev, S., Herman, T.: Dijkstra’s Self-Stabilizing Algorithm in Unsupportive Environments. In: Datta, A.K., Herman, T. (eds.) WSS 2001. LNCS, vol. 2194, pp. 67–81. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  15. 15.
    Dolev, S., Kat, R.I., Schiller, E.M.: When Consensus Meets Self-stabilization: Self-stabilizing Failure-Detector, Consensus and Replicated State-Machine (Extended Abstract). In: Shvartsman, M.M.A.A. (ed.) OPODIS 2006. LNCS, vol. 4305, pp. 45–63. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  16. 16.
    Fischer, M., Jiang, H.: Self-stabilizing Leader Election in Networks of Finite-State Anonymous Agents. In: Shvartsman, M.M.A.A. (ed.) OPODIS 2006. LNCS, vol. 4305, pp. 395–409. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  17. 17.
    Hoepman, J.H., Papatriantafilou, M., Tsigas, P.: Self-stabilization of wait-free shared memory objects. Journal of Parallel and Distributed Computing 62(5), 818–842 (2002)MATHCrossRefGoogle Scholar
  18. 18.
    Hutle, M., Widder, J.: On the Possibility and the Impossibility of Message-Driven Self-stabilizing Failure Detection. In: Tixeuil, S., Herman, T. (eds.) SSS 2005. LNCS, vol. 3764, pp. 153–170. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  19. 19.
    Lamport, L.: On interprocess communication. Part II: Algorithms. Distributed Computing 1(2), 86–101 (1986)MATHCrossRefGoogle Scholar
  20. 20.
    Line, J.C., Ghosh, S.: A methodology for constructing a stabilizing crash-tolerant application. In: Proceedings of the 13th Symposium on Reliable Distributed Systems, pp. 12–21 (1994)Google Scholar
  21. 21.
    Line, J.C., Ghosh, S.: Stabilizing algorithms for diagnosing crash failures. In: Proceedings of the 13th Annual ACM Symposium on Principles of Distributed Computing, p. 376 (1994)Google Scholar
  22. 22.
    Lynch, N.A.: Upper bounds for static resource allocation in a distributed system. Journal of Computer and System Sciences 23(2), 254–278 (1981)MathSciNetMATHCrossRefGoogle Scholar
  23. 23.
    Mizuno, M., Nesterenko, M.: A transformation of self-stabilizing serial model programs for asynchronous parallel computing environments. Inf. Process. Lett. 66(6), 285–290 (1998)MATHCrossRefGoogle Scholar
  24. 24.
    Nesterenko, M., Arora, A.: Dining philosophers that tolerate malicious crashes. In: Proceedings of the 22nd International Conference on Distributed Computing Systems, pp. 172–179 (2002)Google Scholar
  25. 25.
    Nesterenko, M., Arora, A.: Stabilization-preserving atomicity refinement. Journal of Parallel and Distributed Computing 62(5), 766–791 (2002)MATHCrossRefGoogle Scholar
  26. 26.
    Nesterenko, M., Arora, A.: Tolerance to unbounded byzantine faults. In: Proceedings of the 21st IEEE Symposium on Reliable Distributed Systems, pp. 22–29 (2002)Google Scholar
  27. 27.
    Pike, S.M., Sivilotti, P.A.: Dining philosophers with crash locality 1. In: Proceedings of the 24th IEEE International Conference on Distributed Computing Systems, pp. 22–29 (2004)Google Scholar
  28. 28.
    Pike, S.M., Song, Y., Sastry, S.: Wait-Free Dining Under Eventual Weak Exclusion. In: Rao, S., Chatterjee, M., Jayanti, P., Murthy, C.S.R., Saha, S.K. (eds.) ICDCN 2008. LNCS, vol. 4904, pp. 135–146. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  29. 29.
    Sastry, S., Pike, S.M., Welch, J.L.: The weakest failure detector for wait-free dining under eventual weak exclusion. In: Proceedings of the 21st ACM Symposium on Parallelism in Algorithms and Architectures, pp. 111–120 (2009)Google Scholar
  30. 30.
    Song, Y., Pike, S.M.: Eventually k-bounded wait-free distributed daemons. In: IEEE International Conference on Dependable Systems and Networks, pp. 645–655 (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Srikanth Sastry
    • 1
  • Jennifer L. Welch
    • 2
  • Josef Widder
    • 3
  1. 1.CSAILMITCambridgeUSA
  2. 2.Texas A&M UniversityCollege StationUSA
  3. 3.Technische Universität WienViennaAustria

Personalised recommendations