2. What is shared memory?
On-Chip Memory
CPU Memory CPU1 Memory
CPU4
CPU2
CPU3
Chip package
Address and data lines
Connecting the CPU to the
memory
extension
A single-chip computer
A hypothetical shared-memory
Multiprocessor.
3. Introduction
Distributed shared memory (DSM) is a form of memory architecture
where the (physically separate) memories can be addressed as one
(logically shared) address space. Here, the term "shared" does not
mean that there is a single centralized memory but "shared" means that
the address space is shared.
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.
4. How it works?
Data moves between main memory and secondary memory
(within a node) and between main memories of different nodes.
When a process accesses data in the shared address space, the
mapping manager maps shared memory address to physical
memory (local or remote).
5. DSM architecture
High speed communication network is used for connecting nodes.
A simple message passing system allows on different node to
exchange message with each other.
Memory mapping manager routine in each node maps local
memory onto the shared virtual memory. For mapping operation,
the shared memory space is partitioned into blocks.
The main memory of individual nodes is used to cache of shared
memory space.
7. Systems that support DSM,data moves between secondary memory
and main memory as well as between main memories of different
nodes.
When process access data in shared address space, a mapping
manager maps the shared memory address to the physical memory.
The mapping manager is layer of software implemented either in
the operating kernel or as runtime library routine.
DSM architecture
8. Advantages
Shields programmer from send/receive primitives.
DSM is usually cheaper than using multiprocessor system.
DSM provides large virtual memory space.
DSM programs portable as they use common DSM programming
interface.
It can handle complex and large data bases without replication or
sending the data to processes.
No memory access bottleneck.
9. Disadvantages
Must provide for protection against simultaneous access to shared
data such as lock..
It could cause a performance penalty.
Little programmer control over actual messages being generated.
Performance of irregular problems could be difficult.
Programmers need to be understand consistency model to write
correct programs.