This document summarizes shared memory architectures. It describes shared memory systems as having all processors share a global memory, with communication and synchronization occurring through reads and writes to that memory. It then describes two main challenges - contention when multiple processors access shared memory simultaneously, and coherence issues that can arise when multiple copies of data exist in caches. The document proceeds to classify shared memory systems into uniform memory access (UMA), non-uniform memory access (NUMA), and cache-only memory architecture (COMA). It also discusses bus-based symmetric multiprocessors and techniques for maintaining cache coherence.