The Free On-line Dictionary of Computing (18 March 2015):
1. Memory in a parallel computer, usually RAM, which can
be accessed by more than one processor, usually via a shared
bus or network.
It usually takes longer for a processor to access shared
memory than to access its own private memory because of
contention for the processor-to-memory connections and because
of other overheads associated with ensuring synchronised
access. Computers using shared memory usually have some kind
of local cache on each processor to reduce the number of
accesses to shared memory. This requires a cache
consistency protocol to ensure that one processor's cached
copy of a shared memory location is invalidated when another
processor writes to that location.
The alternative to shared memory is message passing where
all memory is private to some particular processor and
processors communicate by sending messages down special
links. This is usually slower than shared memory but it
avoids the problems of contention for memory and can be
implemented more cheaply.
2. Memory which can be access by more than one process in a
multitasking operating system with memory protection.
Some Unix variants, e.g. SunOS provide this kind of shared
Unix manual pages: shmop(2), shmctl(2), shmget(2).