Bộ nhớ chia sẻ (Shared memory) là khối bộ nhớ có thể truy cập bởi nhiều chương trình. Khái niệm bộ nhớ chia sẻ cung cấp cách giao tiếp và quản lý bộ nhớ ít dư thừa hơn.
Bộ nhớ chia sẻ phân tán (Distributed Shared Memory - DSM) là triển khai khái niệm bộ nhớ chia sẻ trong hệ thống phân tán. Hệ thống DSM triển khai các mô hình bộ nhớ chia sẻ trong các hệ thống lỏng lẻo (loosely coupled) bị thiếu bộ nhớ chia sẻ vật lý cục bộ. Trong hệ thống loại này, DSM cung cấp không gian bộ nhớ ảo truy cập được bởi tất cả các hệ thống (còn gọi là nodes) của hệ phân cấp phân tán.
Một số thách thức chung cần lưu ý khi triển khai DSM:
- Theo dõi địa chỉ bộ nhớ (vị trí) của dữ liệu lưu trữ từ xa trong bộ nhớ chia sẻ.
- Giảm độ trễ truyền thông và chi phí cao liên quan đến tham chiếu dữ liệu từ xa.
- Kiểm soát truy cập đồng thời vào dữ liệu chia sẻ trong DSM.
Dựa trên các thách thức này, có 4 thuật toán thiết kế để triển khai DSM:
- Central Server Algorithm (Thuật toán máy chủ trung tâm)
- Migration Algorithm (Thuật toán di trú)
- Read Replication Algorithm (Thuật toán sao chép đọc)
- Full Replication Algorithm (Thuật toán sao chép đầy đủ)
1. Central Server Algorithm
Tất cả dữ liệu chia sẻ được duy trì bởi máy chủ trung tâm. Các nút khác trong hệ thống phân tán yêu cầu đọc/ghi dữ liệu đến máy chủ, máy chủ phục vụ yêu cầu và cập nhật hoặc cung cấp truy cập dữ liệu cùng với tin nhắn xác nhận (acknowledgment messages).
Các tin nhắn xác nhận dùng để cung cấp trạng thái yêu cầu dữ liệu đã được phục vụ. Khi dữ liệu gửi đến hàm gọi, nó xác nhận một số cho thấy trình tự truy cập dữ liệu để duy trì đồng thời. Trả về time-out nếu thất bại.
Đối với hệ thống phân tán lớn, có thể có nhiều máy chủ. Trong trường hợp này, các máy chủ được định vị bằng địa chỉ hoặc hàm ánh xạ.

2. Migration Algorithm
Như tên gọi, thuật toán di trú thực hiện việc di chuyển các phần tử dữ liệu. Thay vì dùng máy chủ trung tâm phục vụ từng yêu cầu, khối dữ liệu được yêu cầu bởi một hệ thống sẽ được di trú (migrated) đến hệ thống đó để truy cập và xử lý tiếp. Nó di trú dữ liệu theo yêu cầu.
Thuật toán này tốt khi một hệ thống truy cập cùng một khối dữ liệu nhiều lần và có khả năng tích hợp khái niệm bộ nhớ ảo, nhưng có một số thiếu điểm cần giải quyết:
- Chỉ một nút truy cập phần tử dữ liệu chia sẻ tại một thời điểm và toàn bộ khối được di trú đến nút đó.
- Thuật toán này dễ bị thrashing do di trú mục dữ liệu theo yêu cầu của nút.

3. Read Replication Algorithm
Trong thuật toán sao chép đọc, khối dữ liệu cần truy cập được sao chép (replicated) và chỉ cho phép đọc trên tất cả các bản sao. Nếu cần thao tác ghi, tất cả quyền truy cập đọc bị tạm dừng cho đến khi tất cả bản sao được cập nhật.
Hiệu suất hệ thống tổng thể được cải thiện do cho phép truy cập đồng thời. Nhưng thao tác ghi tốn kém do yêu cầu cập nhật tất cả khối chia sẻ để duy trì đồng thời. Tất cả bản sao phần tử dữ liệu phải được theo dõi để đảm bảo tính nhất quán.

4. Full Replication Algorithm
Mở rộng từ thuật toán sao chép đọc, cho phép các nút thực hiện cả đọc và ghi trên khối chia sẻ đồng thời. Nhưng quyền truy cập này được kiểm soát để duy trì tính nhất quán.
Để duy trì nhất quán dữ liệu khi truy cập đồng thời của tất cả các nút, trình tự được duy trì và sau mỗi sửa đổi trên dữ liệu, một multicast với các sửa đổi được phản ánh tới tất cả các bản sao dữ liệu.
