Check out the new USENIX Web site. USENIX - Summaries

A Distributed Shared Memory Facility for FreeBSD

By Pedro Souto and Eugene Stark, State University of New York, Stony Brook

Summary by Gordon Galligher

This implementation of clustering is such that programs must cooperate on using the shared memory that is available, and the distributed nature allows the programs to increase the total amount of memory that they can use by using parts of the other machines. It is implemented by the Virtual Memory (VM) layer in FreeBSD with only minimal changes due to the "shadow chains" that are available in the FreeBSD kernel. As a result of this, it is not necessary to have the application that wishes to use the Distributed Shared Memory (DSM) model write any sort of socket- or network-based code. It is all handled via a number of specific system calls for both clients (those applications wishing to use available DSM pages) and servers (those applications that create and manage DSM pages). The communication protocol is implemented on the UDP layer for speed and low complexity.

The "shadow chains" in the FreeBSD VM architecture are such that the DSM layer can be easily placed into the kernel without requiring changes to the existing VM layer. The new DSM driver is put in place. If the page is found to be part of the DSM, it will contact the appropriate device driver to get the pages, or, if not, it will fall back to the existing local driver for normal use. Furthermore, if a page in the DSM portion of the VM needs to be paged out, the data are moved from the DSM portion to the normal VM portion. Another sweep cycle is then required for the data to actually be written to the paging device. This implementation is very simple without having to write code that works with the physical swap device and deals with locking the unit, etc.

There has not been a significant amount of testing in a "real-world" setting, i.e., a full application vs. test suites But there are plans to perform real evaluations. The code is being made freely available, under a Berkeley-style license agreement, and can be obtained from the following URL:

Originally published in ;login: Vol. 22, No.2, April 1997.
Last changed: May 28, 1997 pc
Summaries Index
Anaheim Index
Proceedings Index