Abstract
In machines with a weak memory consistency model, the ordering constraints on memory accesses are few. In order to properly program these machines, certain powerful explicit synchronization instructions are additionally provided by their architecture. We show that although a solution to the critical section problem (also referred to as the mutual exclusion problem) is impossible without such powerful synchronization, certain versions of the producer/consumer problem can be solved even in the weakest systems without the need for any such powerful instructions. These instructions are expensive, and avoiding their use is desirable for better performance.