This paper presents a kernel level distributed interprocess 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. A key feature of KDIPC, inherited from System VIPC API, is providing an interface allowing atomic operations on semaphore sets. This permits application developers to perform locking of multiple resources in an atomic manner, simplifies the code and reduces the risk of deadlocks. The implementation is done at the Linux kernel level to reduce the overhead induced by the strict consistency model.
['Cristian Tapus', 'Jason Hickey']
Distributed synchronization with shared semaphore sets