The report studies the question: what synchronization primitive should be used to handle inter-process communication. A formal model is presented of the process concept, and then the model is used to compare four different syncrhonization primitives. It is proved that there are differences between these synchronization primitives. Although only four synchronization primitives are compared, the general methods can be used to compare other synchronization primitives. Moreover, in the definitions of these synchronization primitives, conditional branches are explicitly allowed. In addition, the model separates the notion of process from the notion of scheduler. This separation enables one to unravel the controversy between Hansen and Courtois, Heymans, Parnas and to define formally the release mechanism of the PV synchronization primitive. (Modified author abstract).