The mastery of distributed applications demands a complete understanding of the foundations of the distributed algorithm. The object of this book is to present these foundations as they relate to synchronization--the key element of parallelism and distribution. Divided into four chapters, it explores the different types of synchronization that may be encountered in a parallel application and presents the concept of wave and several of its possible implementations. Synchronous and asynchronous sytems and their relationships are described, as well as the concept of the synchronization phase, its properties, and its use.