Shared virtual memory, a technique for supporting a shared address space in
software on parallel systems, has undergone a decade of research, with sig
nificant maturing of protocols and communication layers having now been ach
ieved. We provide a survey of the key developments in this research, placin
g the multitrack flow of ideas and results obtained so far in a comprehensi
ve new framework. Four major research tracks are covered: relaxed consisten
cy models; protocol laziness; architectural support; and application driven
research. Several related avenues are also discussed, such as fine-grained
software coherence, software protocols across multiprocessor nodes, and pe
rformance scalability. We summarize comparative performance results from th
e literature, discuss their limitations and identify lessons learned so far
, key outstanding questions, and important directions for future research i
n this area.