Distributed shared memory

Definition of DSM

A distributed shared memory is a mechanism allowing end-users’ processes to access shared data without using inter-process communications. In other words, the goal of a DSM system is to make inter-process communications transparent to end-users.

Message passing vs. DSM

Message passingDistributed shared memory
Variables have to be marshaledVariables are shared directly
Cost of communication is obviousCost of communication is invisible
Processes are protected by having private address spaceProcesses could cause error by altering data
Processes should execute at the same timeExecuting the processes may happen with non-overlapping lifetimes

Abstract view of DSM

Advantages of DSM

  • System scalable
  • Hides the message passing
  • Can handle complex and large data bases without replication or sending the data to processes
  • DSM is usually cheaper than using multiprocessor system
  • No memory access bottleneck, as no single bus
  • DSM provides large virtual memory space
  • DSM programs portable as they use common DSM programming interface
  • Shields programmer from sending or receive primitives
  • DSM can (possibly) improve performance by speeding up data access.

Disadvantages of DSM

  • Could cause a performance penalty
  • Should provide for protection against simultaneous access to shared data such as lock
  • Performance of irregular problems could be difficult.