This chapter introduced some idioms for synchronization mechanisms, providing an overview of common coding practices for synchronization used in communication components for parallel programs. Selection amongst these idioms is the third main step towards the detailed design and implementation of coordination for a parallel application in the pattern-based parallel software design method.
The chapter's objective was to include classic synchronization mechanisms for implementing communication and synchronization components. These describe synchronization mechanisms that allow communication as described by a particular design pattern for communication components. However, as an initial attempt to the creation of a pattern system for parallel programming, the idioms here are not sufficiently complete or detailed to cover every synchronization issue within a parallel program: they need to be related to current pattern developments for concurrent, parallel and distributed systems.
The idioms for synchronization mechanisms presented here – the Semaphore idiom, the Critical Region idiom, the Monitor idiom, the Message Passing idiom and the Remote Procedure Call idiom – along with guidelines on their classification and selection, are intended to help the software designer decide which synchronization method best solves a given communication problem.