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.