The mastery of distributed applications distributed computation and control, generally called the foundations of the distributed algorithm. The object of this book is to present such foundations as far as synchronization, the key element of parallelism and distribution, is concerned. The work is divided into four chapters, followed by an appendix. An introductory character sets out the different types of synchronization that may be encountered in a parallel application and chapter 2 presents the concept of wave and several of its possible implementations. Chapter 3 deals with the notions of synchronous and asynchronous systems and studies their relationships, aiming to show how a synchronous algorithm is executed on an asynchronization phase, its properties and use. The implementation of all of these concepts of control and synchronization, as well as of the algorithms which arise from them, requires the ability to visit the sites of processes of the application.
For methodological reasons, the study of the traversal techniques which can be used and which are based on the distributed construction of a traversal structure (virtual ring, spanning arborescence or tree) using an exploration of the network distributed in depth or in width, is not undertaken in chapters 1 to 4. The study of traversal structures, and distributed algorithms for constructing them, is the subject of an appendix. The algorithms presented throughout the book are described in an event-driven from intended to be self-explanatory - such and such an event produces such and such effects. This work is intended, for those interested in applications and in distributed systems, networks and distributed algorithms.