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 passing||Distributed shared memory|
|Variables have to be marshaled||Variables are shared directly|
|Cost of communication is obvious||Cost of communication is invisible|
|Processes are protected by having private address space||Processes could cause error by altering data|
|Processes should execute at the same time||Executing 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.