The use of modular and parallel programming languages, and the development of distributed architectures is having a profound influence on computer programming and systems design; hardware and performance can now conspire to produce much higher operating speeds than could previously be achieved through sequential processing. Executing cooperating, concurrent processes demands that new specification and implementation techniques be developed.
This book proposes a method for expressing typical cooperation and competition problems, as well as different synchronization and communication methods for implementing them. Using a general abstract expression to state synchronization constraints between parallel processes, the authors then choose either a centralized or a distributed implementation as a solution for the targeted system. Each of these implementations is illustrated with examples drawn from classic problems, and one informal case study (management of access to a swimming pool) acts as a leitmotif throughout the work, providing comparisons between the various approaches offered.
Contents: Introduction-the problem and an example; Languages for the expression of synchronization problems; Tools and methods for centralized implementation; Tools and methods for distributed implementation.
Jacque Andre, Daniel Herman, and Jean-Pierre Verjus are staff researchers at IRISA, INSA, and the University of Rennes in France. Synchronization of Parallel Programs is included in the Scientific Computation Series, edited by Dennis Gannon.