Advertisement

Mutex-Based De-anonymization of an Anonymous Read/Write Memory

  • Emmanuel Godard
  • Damien Imbs
  • Michel RaynalEmail author
  • Gadi Taubenfeld
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11704)

Abstract

Anonymous shared memory is a memory in which processes use different names for the same shared read/write register. As an example, a shared register named A by a process p and a shared register named B by another process q can correspond to the very same register X, and similarly for the names B at p and A at q which can correspond to the same register \(Y\ne X\). Hence, there is a permanent disagreement on the register names among the processes. This new notion of anonymity was recently introduced by G. Taubenfeld (PODC 2017), who presented several memory-anonymous algorithms and impossibility results.

This paper introduces a new problem, that consists in “de-anonymizing” an anonymous shared memory. To this end, it presents an algorithm that, starting with a shared memory made up of m anonymous read/write atomic registers (i.e., there is no a priori agreement on their names), allows each process to compute a local addressing mapping, such that all the processes agree on the names of each register. The proposed construction is based on an underlying deadlock-free mutex algorithm for \(n\ge 2\) processes (recently proposed in a paper co-authored by some of the authors of this paper), and consequently inherits its necessary and sufficient condition on the size m of the anonymous memory, namely m must belong to the set \(M(n)=\{m:~ \text{ such } \text{ that } \forall ~ \ell : 1<\ell \le n:~ \mathsf{{gcd}}(\ell ,m)=1\}\setminus \{1\}\). This algorithm, which is also symmetric in the sense process identities can only be compared by equality, requires the participation of all the processes; hence it can be part of the system initialization. Last but not least, the proposed algorithm has a noteworthy first-class property, namely, its simplicity.

Keywords

Anonymity Anonymous shared memory Asynchronous system Atomic read/write register Concurrent algorithm Deadlock-freedom Local memory Mapping function Mutual exclusion Simplicity Synchronization 

Notes

Acknowledgments

This work was partially supported by the French ANR project DESCARTES (16-CE40-0023-03) devoted to layered and modular structures in distributed computing. The authors want to thank the referees for their constructive comments.

References

  1. 1.
    Aigner, M., Ziegler, G.: Proofs from THE BOOK. Springer, Heidelberg (2010). 274 p. ISBN 978-3-642-00856-6CrossRefGoogle Scholar
  2. 2.
    Angluin D.: Local and global properties in networks of processes. In: Proceedings of the 12th Symposium on Theory of Computing (STOC 1980). ACM Press, pp. 82–93 (1980)Google Scholar
  3. 3.
    Aghazadeh Z., Imbs D., Raynal M., Taubenfeld G., Woelfel P.: Optimal memory-anonymous symmetric deadlock-free mutual exclusion. In: Proceedings of the 38th ACM Symposium on Principles of Distributed Computing (PODC 2019), 10 p. ACM Press (2019)Google Scholar
  4. 4.
    Attiya, H., Gorbach, A., Moran, S.: Computing in totally anonymous asynchronous shared-memory systems. Inf. Comput. 173(2), 162–183 (2002)MathSciNetCrossRefGoogle Scholar
  5. 5.
    Bonnet, F., Raynal, M.: Anonymous asynchronous systems: the case of failure detectors. Distrib. Comput. 26(3), 141–158 (2013)CrossRefGoogle Scholar
  6. 6.
    Bouzid, Z., Raynal, M., Sutra, P.: Anonymous obstruction-free \((n, k)\)-set agreement with \((n-k+1)\) atomic read/write registers. Distrib. Comput. 31(2), 99–117 (2018)MathSciNetCrossRefGoogle Scholar
  7. 7.
    Delporte-Gallet, C., Fauconnier, H., Gafni, E., Lamport, L.: Adaptive register allocation with a linear number of registers. In: Afek, Y. (ed.) DISC 2013. LNCS, vol. 8205, pp. 269–283. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-41527-2_19CrossRefGoogle Scholar
  8. 8.
    Dijkstra, E.W.: Solution of a problem in concurrent programming control. Commun. ACM 8(9), 569 (1965)CrossRefGoogle Scholar
  9. 9.
    Dijkstra, E.W.: Some beautiful arguments using mathematical induction. Algorithmica 13(1), 1–8 (1980)MathSciNetzbMATHGoogle Scholar
  10. 10.
    Garg V.K., Ghosh J.: Symmetry in spite of hierarchy. In: Proceedings of the 10th International Conference on Distributed Computing Systems (ICDCS 1990), pp. 4–11. IEEE Computer Press (1990)Google Scholar
  11. 11.
    Guerraoui, R., Ruppert, E.: Anonymous and fault-tolerant shared-memory computations. Distrib. Comput. 20, 165–177 (2007)CrossRefGoogle Scholar
  12. 12.
    Johnson R.E., Schneider F.B.: Symmetry and similarity in distributed systems. In: Proceedings off the 4th ACM Symposium on Principles of Distributed Computing (PODC 1985), pp. 13–22, ACM Press (1985)Google Scholar
  13. 13.
    Lamport, L.: On interprocess communication, part I: basic formalism. Distrib. Comput. 1(2), 77–85 (1986)MathSciNetCrossRefGoogle Scholar
  14. 14.
    Navlakha, S., Bar-Joseph, Z.: Algorithms in nature: the convergence of systems biology and computational thinking. Mol. Syst. Biol. 7(546), 1–11 (2011)Google Scholar
  15. 15.
    Navlakha, S., Bar-Joseph, Z.: Distributed information processing in biological and computational systems. Commun. ACM 58(1), 94–102 (2015)CrossRefGoogle Scholar
  16. 16.
    Perlis, A.J.: Epigrams on programming. ACM SIGPLAN Not. 17(1), 7–13 (1982)CrossRefGoogle Scholar
  17. 17.
    Peterson, G.L.: Myths about the mutual exclusion problem. Inform. Process. Lett. 12(3), 115–116 (1981)CrossRefGoogle Scholar
  18. 18.
    Rashid S., Taubenfeld G., Bar-Joseph Z.: Genome wide epigenetic modifications as a shared memory consensus. In: 6th Workshop on Biological Distributed Algorithms (BDA 2018), London (2018)Google Scholar
  19. 19.
    Raynal, M.: Concurrent Programming: Algorithms, Principles and Foundations. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-32027-9. 515 p. ISBN 978-3-642-32026-2CrossRefzbMATHGoogle Scholar
  20. 20.
    Raynal, M.: Fault-Tolerant Message-passing Distributed Systems: An Algorithmic Approach. Springer, Heidelberg (2018).  https://doi.org/10.1007/978-3-319-94141-7. 492 p. ISBN 978-3-319-94140-0CrossRefGoogle Scholar
  21. 21.
    Raynal, M., Cao, J.: Anonymity in distributed read/write systems: an introductory survey. In: Podelski, A., Taïani, F. (eds.) NETYS 2018. LNCS, vol. 11028, pp. 122–140. Springer, Cham (2019).  https://doi.org/10.1007/978-3-030-05529-5_9CrossRefGoogle Scholar
  22. 22.
    Taubenfeld, G.: Synchronization Algorithms and Concurrent Programming. Pearson Education/Prentice Hall, London (2006). 423 p. ISBN 0-131-97259-6Google Scholar
  23. 23.
    Taubenfeld G.: Coordination without prior agreement. In: Proceedings of the 36th ACM Symposium on Principles of Distributed Computing (PODC 2017), pp. 325–334. ACM Press (2017)Google Scholar
  24. 24.
    Yamashita, M., Kameda, T.: Computing on anonymous networks: part I -characterizing the solvable cases. IEEE Trans. Parallel Distrib. Syst. 7(1), 69–89 (1996)CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Emmanuel Godard
    • 1
  • Damien Imbs
    • 1
  • Michel Raynal
    • 2
    • 3
    Email author
  • Gadi Taubenfeld
    • 4
  1. 1.LISUniversité d’Aix-MarseilleMarseilleFrance
  2. 2.Univ Rennes IRISARennesFrance
  3. 3.Department of ComputingPolytechnic UniversityHung HomHong Kong
  4. 4.The Interdisciplinary CenterHerzliyaIsrael

Personalised recommendations