The distributed shared memory (DSM) implements the shared memory model in distributed systems, which have no physical shared memory
The shared memory model provides a virtual address space shared between all nodes
The overcome the high cost of communication in distributed systems, DSM systems move data to the location of access
How ?
Data moves between main memory and secondary memory (within a node) and between main memories of different nodes
Each data object is owned by a node :Initial owner is the node that created object Ownership can change as object moves from node to node
When a process accesses data in the shared address space, the mapping manager maps shared memory address to physical memory (local or remote)
Advantages of distributed shared memory (DSM)
Data sharing is implicit, hiding data movement.
Passing data structures containing pointers is easier.
Moving entire object to user takes advantage of locality difference
Less expensive to build than tightly coupled multiprocessor system.
Very large total physical memory for all nodes: Large programs can run more efficiently
No serial access to common bus for shared physical memory like in multiprocessor systems
Programs written for shared memory multiprocessors can be run on DSM systems with minimum changes.
Types of distributed shared memory (DSM)
1. On-Chip Memory
Such chips are widely used in appliances cars and even toys.
CPU portion of the chip has data.
Address lines directly connect to memory portion.
It is expensive and complicated to construct chip like this.
2. Bus-Based Multiprocessors
Connection between cpu and memory is set of parallel wires some holding address of cpu wants to read or write or for sending or receiving messages
Network traffic is reduced by using caches with each cpu.
Algorithms are used to prevent two cpu trying to access same memory simultaneously.
Having single bus makes it overloaded.
3. Ring-Based Multiprocessors
A single address line is partitioned into a private area and shared area.
Private area is divided up into regions so each machine has a piece for its stack
Shared area is divided into 32 byte blocks.
All machines are connected via token passing ring. All components are interconnected via Memnet device.
No centralized global memory.
4. Switched Multiprocessors
Two approaches can be taken to attack the problem of not enough bandwidth.
Reduce the amount of communication. E.g. Caching.
Increase the communication capacity. E.g. Changing topology.
One method is to build the system as a hierarchy. Build the system as multiple clusters and connect the clusters using an intercluster bus. As long as most CPUs communicate primarily within their own cluster, there will be relatively little intercluster traffic. If still more bandwidth is needed, collect a bus, tree, or grid of clusters together into a supercluster, and break the system into multiple superclusters.