Abstract

This thesis presents a kernel level distributed inter-process communication library (KDIPC) with support for distributed shared memory and distributed semaphores. KDIPC uses the System V inter-process communication programming interface and enhances it to provide functionality in distributed environments. The library uses a sequential consistency model for shared memory that provides ease of programming and preserves the semantics of parallel programs. A key feature of KDIPC is the use of the semaphore interface to support distributed synchronization. The implementation is done at the Linux kernel level to reduce the overhead induced by the strict consistency model.
The thesis also investigates several protocols for maintaining sequential consistency, and for providing location discovery of remote copies of shared memory segments and semaphores. A case-study illustrates the benefits of KDIPC as compared to other inter-process communication libraries, such as the ease of programming provided by the sequential consistency model. Various details related to the implementation, the challenges encountered, and the benefits and disadvantages of using the different protocols are also presented.

Future avenues of research include the use of speculative execution to improve the performance of the protocol used to maintain sequential consistency, the development of a distributed file system on top of the shared memory system, and the implementation of applications from applied sciences that would benefit from using the simple synchronization and sharing mechanisms of KDIPC.