This document discusses distributed shared memory (DSM) systems. It defines DSM as providing a logical abstraction of shared memory across interconnected nodes with distributed physical memories. It describes different types of DSM implementations, advantages of DSM, and various hardware architectures like on-chip memory, bus-based multiprocessors, and switched multiprocessors. It also covers DSM design issues such as granularity of sharing, data structures, consistency models like strict, sequential, and weak consistency, and coherence protocols.