evaluations

Vagelis Hristidis (vagelis@cs.ucsd.edu)
Tue, 30 May 2000 02:16:05 -0700

Memory Coherence in Shared Virtual Memory Systems

This paper targets the problem of memory coherence in systems with loosely
coupled processors and distributed memory, which is shared between all
processors. The shared virtual memory pages data between physical memories
and disks and between physical memories of individual processors. This
capability increases the flexibility of the system(eg allows transparent
process migration) but also causes memory coherence problems.
Memory pages synchronization can be achieved either with invalidation or
with write broadcast. The problem is that the hardware needed in order to
support such operations is complicated, so this hardware dependency is a
major limitation of this memory architecture.
Two general classes of algorithms are presented. First the centralized
manager algorithms have a monitor like operation. The main problems with
them is that the performance can degrade but most importantly, the whole
network goes down when the server in charge crashes. Second are the
distributed manager algorithms which are more complicated but also more
efficient.
In general the paper presents a nice framework for dealing with a shared
virtual memory and compares some fundamental strategies of dealing with page
faults.

Implementing Global Memory Management in a Workstation Cluster

This paper proposes a single ,unified and distributed memory management
algorithm that resides below the operating system. This means that this
algorithm is below the level of Virtual Memory. One of the advantages of
such an approach is that we can use the memory of any of the computers of a
cluster to cache data, in order to avoid the expensive disk accesses. All
pages sent to global memory(the part of physical memory that stores pages
from other nodes) are clean, so node failures do not cause data loss in
global memory.
The basic idea behind the algorithm is the fact that network speed is much
higher than disk access speed, so it is faster for local processes to access
pages from the memory of other nodes of the cluster than to get the pages
from the disk. The network speed keeps growing so this speed mismatch is
likely to increase, but the problem with the shared memory approach is the
increased complexity and the overhead added.