Distributed shared memory (DSM) allows nodes in a cluster to access shared memory across the cluster in addition to each node's private memory. DSM uses a software memory manager on each node to map local memory into a virtual shared memory space. It consists of nodes connected by high-speed communication and each node contains components associated with the DSM system. Algorithms for implementing DSM deal with distributing shared data across nodes to minimize access latency while maintaining data coherence with minimal overhead.