skip to main content
research-article
Free Access

Self-stabilization preserving compiler

Published:26 August 2009Publication History
Skip Abstract Section

Abstract

Self-stabilization is an elegant approach for designing fault tolerant systems. A system is considered self-stabilizing if, starting in any state, it converges to the desired behavior. Self-stabilizing algorithms were designed for solving fundamental distributed tasks, such as leader election, token circulation and communication network protocols. The algorithms were expressed using guarded commands or pseudo-code. The realization of these algorithms requires the existence of a (self-stabilizing) infrastructure such as a self-stabilizing microprocessor and a self-stabilizing operating system for their execution. Moreover, the high-level description of the algorithms needs to be converted into machine language of the microprocessor. In this article, we present our design for a self-stabilization preserving compiler. The compiler we designed and implemented transforms programs written in a language similar to the abstract state machine (ASM). The compiler preserves the stabilization property of the high level program.

References

  1. Borger, E., Gurevich, Y., and Rosenzweig, D. 1995. The bakery algorithm: Yet another specification and verification. In Specification and Validation Methods, E. Borger Ed., 231--243. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Borger, E. and Stark, R. 2003. Abstract State Machines: A Method for High-Level System Design and Analysis. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Brukman, O., Dolev, S., and Kolodner, E. K. 2003. Self-stabilizing autonomic recoverer for eventual byzantine software. In Proceedings of the International Conference on Software Science Technology and Engineering. (SwSTE'03). Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Demirbas, M. and Arora, A. 2002. Convergence refinement. In Proceedings of the International Conference on Distributed Computer Services (ICDCS). 589--597. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dijkstra, E. W. 1974. Self-stabilizing systems in spite of distributed control. Comm. ACM 11, 17, 643--644. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Dolev, S. 2000. Self-stabilization. MIT Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Dolev, S. and Haviv, Y. 2004. Self-stabilizing microprocessor analyzing and overcoming soft-errors (extended abstract). In Proceedings of the International Conference on Architecture of Computing Systems (ARCS'04). Lecture Notes in Computer Science, vol. 2981. Springer Verlag, 31--46.Google ScholarGoogle Scholar
  8. Dolev, S., Haviv, Y., and Sagiv, M. 2008. Self-stabilization preserving compiler—implementation and examples. Tech. rep. #2008-01, Ben-Gurion University of the Negev, Israel. http://www.cs.bgu.ac.il/~frankel/TechRep/08-01/index.html.Google ScholarGoogle Scholar
  9. Dolev, S., Israeli, A., and Moran, S. 1993. Self-stabilization of dynamic systems assuming only read/write atomicity. Distrib. Comput. 7, 1, 3--16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Dolev, S. and Kat, R. I. 2002. “self-stabilizing distributed file systems”. In Proceedings of the International Workshop on Self-Repairing and Self-Configurable Distributed Systems, (RCDS'02). 384--389. J. High Speed Netw., To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Dolev, S. and Welch, J. L. 2004. Self-stabilizing clock synchronization in the presence of byzantine faults. J. ACM 51, 5, 780--799. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Dolev, S. and Yagel, R. 2004. “toward self-stabilizing operating systems”. In Proceedings of the 2nd International Workshop on Self-Adaptive and Autonomic Computing Systems (SAACS'04). 684--688. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Dolev, S. and Yagel, R. 2005. Memory management for self-stabilizing operating systems. In Self-Stabilizing Systems, T. Herman and S. Tixeuil, Eds. Lecture Notes in Computer Science, vol. 3764. Springer, 113--127. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Fox, A. and Patterson, D. 2003. Self-repairing computers. Scientific American.Google ScholarGoogle Scholar
  15. Gouda, M. G. and Haddix, F. F. 1999. The alternator. In Proceedings of the International Conference on Web-Based Support Systems (WSS). A. Arora, Ed. IEEE Computer Society, 48--53. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Gouda, M. G., Howell, R. R., and Rosier, L. E. 1990. The instability of self-stabilization. Acta Inform. 27, 9, 697--724. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Gurevich, Y. 1994. Evolving algebras 1993: Lipari Guide. In Specification and Validation Methods, E. Börger, Ed. Oxford University Press, 9--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Hadjicostis, C. N. 2001. Coding Approaches to Fault Tolerance in Combinational and Dynamic Systems. Kluwer Academic Publishers, Norwell, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Herman, T. and Pirwani, I. 2001. A composite stabilizing data structure. In Proceedings of the 5th International Workshop on Self-Stabilizing Systems (WSS'01). Springer-Verlag, 167--182. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Kephart, J. O. and Chess, D. M. 2003. The vision of autonomic computing. Comput. 36, 1, 41--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Lamport, L., Shostak, R., and Pease, M. 1995. The byzantine generals problem. In Advances in Ultra-Dependable Distributed Systems, N. Suri, C. J. Walter, and M. M. Hugue (Eds.), IEEE Computer Society Press.Google ScholarGoogle Scholar
  22. Lamport, L. 1978. Time, clocks, and the ordering of events in a distributed system. Comm. ACM 21, 7, 558--565. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Lamport, L. 1986. On interprocess communication, part I: Basic formalism. Distrib. Comput. 1, 2, 77--85.Google ScholarGoogle ScholarCross RefCross Ref
  24. Lynch, N. A. 1996. Distributed Algorithms. Morgan Kaufmann Publishers Inc., San Francisco, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. McGuire, T. M. and Gouda, M. G. 2005. The Austin Protocol Compiler. Springer-Verlag.Google ScholarGoogle Scholar
  26. Nesterenko, M. and Arora, A. 1999. Stabilization-preserving atomicity refinement. In Proceedings of the International Symposium on Distributed Computing (DISC). P. Jayanti, Ed. Lecture Notes in Computer Science, vol. 1693. Springer, 254--268. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Perlman, R. 1992. Interconnections: Bridges and Routers. Addison Wesley Longman Publishing Co., Inc., Redwood City, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Plotkin, G. D. 1981. A Structural Approach to Operational Semantics. Tech. rep. DAIMI FN-19, University of Aarhus.Google ScholarGoogle Scholar
  29. Shivakumar, P., Kistler, M., Keckler, S. W., Burger, D., and Alvisi, L. 2002. Modeling the effect of technology trends on the soft error rate of combinational logic. In Proceedings of the 2002 International Conference on Dependable Systems and Networks (DSN'02). IEEE Computer Society, 389--398. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Tanenbaum, A. S. 1989. Structured Computer Organization 3rd Ed. Prentice-Hall, Inc., Upper Saddle River, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Self-stabilization preserving compiler

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                • Published in

                  cover image ACM Transactions on Programming Languages and Systems
                  ACM Transactions on Programming Languages and Systems  Volume 31, Issue 6
                  August 2009
                  162 pages
                  ISSN:0164-0925
                  EISSN:1558-4593
                  DOI:10.1145/1552309
                  Issue’s Table of Contents

                  Copyright © 2009 ACM

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 26 August 2009
                  • Accepted: 1 February 2009
                  • Revised: 1 October 2007
                  • Received: 1 February 2006
                  Published in toplas Volume 31, Issue 6

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • research-article
                  • Research
                  • Refereed

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader
                About Cookies On This Site

                We use cookies to ensure that we give you the best experience on our website.

                Learn more

                Got it!