Skip to Main Content
Sequential consistency is a well known consistency requirement for distributed shared memory. However, most of the algorithms that implement sequential consistency involve some expensive blocking. We propose algorithms that reduce blocking. First, we propose a synchronous algorithm using a 3-phase protocol and, when it is possible, a more efficient 2-phase protocol. We also propose a semi-synchronous algorithm where all processes can proceed asynchronously until a specific operation, called the flush, is invoked. The processes are then synchronized by this flush at a particular point in space and time. Subsequently, all processes resume their asynchronous progress. Simulation results show significant improvements in performance in our protocols, especially in the case of the semi-synchronous protocol.