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 (self-stabilizing) infrastructure for their execution such as a self-stabilizing microprocessor and a self-stabilizing operating system. Moreover, the high-level description of the algorithms needs to be converted into machine language of the microprocessor. In this work, we present a design for a self-stabilization preserving compiler designed for programs written in a language similar to the abstract state machine (ASM). The compiler preserves the stabilization property of the high level program.
Partially supported by Microsoft, IBM, NSF, Intel, Deutsche Telekom, Rita Altura Trust Chair in Computer Sciences, Intel, vaatat and Lynn and William Frankel Center for Computer Sciences.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Borger, E., Gurevich, Y., Rosenzweig, D.: The bakery algorithm: Yet another specification and verification. In: Borger, E. (ed.) Specification and Validation Methods, pp. 231–243. Oxford University Press, Oxford (1995)
Borger, E., Stark, R.: Abstract State Machines: A Method for High-Level System Design and Analysis. Springer, Heidelberg (2003)
Brukman, O., Dolev, S., Kolodner, E.: Self-Stabilizing Autonomic Recoverer for Eventual Byzantine Software. In: IEEE International Conference on Software-Science, Technology & Engineering (SwSTE 2003), Herzelia, pp. 20–29 (2003); Also in the Workshop on Adaptive Distributed Systems (WADiS 2003), Sorrento, Italy (2003)
Dijkstra, E.W.: Self-stabilizing systems in spite of distributed control. Commun. ACM 17(11), 643–644 (1974)
Dolev, S.: Self-Stabilization. MIT Press, Cambridge (2000)
Dolev, S., Haviv, Y.A.: Self-Stabilizing Soft Error Resilient Microprocessor. In: Müller-Schloer, C., Ungerer, T., Bauer, B. (eds.) ARCS 2004. LNCS, vol. 2981, pp. 31–46. Springer, Heidelberg (2004)
Dolev, S., Haviv, Y., Sagiv, M.: “Self-Stabilization Preserving Compiler” Technical Report #2005-06 (2005), http://www.cs.bgu.ac.il/~haviv/PHD/sspc-techreport.ps
Dolev, S., Israeli, A., Moran, S.: Self-stabilization of dynamic systems assuming only read/write atomicity. Distributed Computing 7(1), 3–16 (1993)
Dolev, S., Kat, R.: Self-Stabilizing Distributed File Systems. In: International Workshop on Self-Repairing and Self-Configurable Distributed Systems (RCDS 2002), pp. 384–389 (2002); To appear in Journal of High Speed Networks, special issue on self-stabilizing systems.
Dolev, S., Welch, J.L.: Self-Stabilizing Clock Synchronization in the Presence of Byzantine Faults. Journal of the ACM 51(5), 780–799 (2004)
Dolev, S., Yagel, R.: Toward Self-Stabilizing Operating Systems. In: 2nd International Workshop on Self-Adaptive and Autonomic Computing Systems (SAACS 2004), pp. 684–688 (2004)
Fox, A., Patterson, D.: Self-Repairing Computers. Scientific American (June 2003)
Gouda, M.G., Haddix, F.F.: The alternator. In: WSS, pp. 48–53 (1999)
Kephart, J.O., Chess, D.M.: The Vision of Autonomic Computing. In: IEEE Computer, pp. 41–50 (January 2003)
Gurevich, Y.: Evolving Algebras 1993: Lipari Guide. In: Boerger, E. (ed.) Specification and Validation Methods, pp. 9–36. Oxford University Press, Oxford (1995)
Hadjicostis, C.N.: Coding Approaches to Fault Tolerance in Combinational and Dynamic Systems. Kluwer Academic Publishers, Dordrecht (2002)
Herman, T., Pirwani, I.: A composite stabilizing data structure. In: Datta, A.K., Herman, T. (eds.) WSS 2001. LNCS, vol. 2194, pp. 167–182. Springer, Heidelberg (2001)
Kistler, M., Shivakumar, P., Alvisi, L., Burger, D., Keckler, S.: Modeling the effect of technology trends on the soft error rate of combinational logic. In: ICDSN. LNCS, vol. 72, pp. 216–226 (2002)
Lamport, L.: Time, Clocks, and the Ordering of Events in a Distributed System. Communications of the ACM 21(7), 558–565 (1978)
Lynch, N.A.: Distributed Algorithms. Morgan Kaufman, San Francisco (1996)
McGuire, T.M., Gouda, M.G.: The Austin Protocol Compiler. Springer, Heidelberg (2005)
Perlman, R.: Interconnections: Bridges, Routers, Switches, and Internetworking Protocols. Addison Wesley, Reading (1999)
Tanenbaum, A.: Structured Computer Organization, 2nd edn. Prentice-Hall, Inc., Englewood Cliffs (1984)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dolev, S., Haviv, Y., Sagiv, M. (2005). Self-stabilization Preserving Compiler. In: Tixeuil, S., Herman, T. (eds) Self-Stabilizing Systems. SSS 2005. Lecture Notes in Computer Science, vol 3764. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11577327_6
Download citation
DOI: https://doi.org/10.1007/11577327_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29814-4
Online ISBN: 978-3-540-32123-1
eBook Packages: Computer ScienceComputer Science (R0)