Device driver programming in a transactional DSM operating system

  • Authors:
  • T. Bindhammer;R. Göckelmann;O. Marquardt;M. Schöttner;M. Wende;P. Schulthess

  • Affiliations:
  • University Ulm, Oberer Eselsberg 27, 89069 Ulm;University Ulm, Oberer Eselsberg 27, 89069 Ulm;University Ulm, Oberer Eselsberg 27, 89069 Ulm;University Ulm, Oberer Eselsberg 27, 89069 Ulm;University Ulm, Oberer Eselsberg 27, 89069 Ulm;University Ulm, Oberer Eselsberg 27, 89069 Ulm

  • Venue:
  • CRPIT '02 Proceedings of the seventh Asia-Pacific conference on Computer systems architecture
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Plurix project implements an object-oriented operating system (OS) for PC clusters. Network communication is implemented via the distributed shared memory (DSM) paradigm. Memory consistency is maintained by restartable transactions and an optimistic synchronization scheme, that have been used in database technology in the past. Originally, DSM systems were built to support parallel algorithms, but using DSM as a foundation for a general purpose OS offers interesting perspectives in designing and using distributed applications. The OS, including kernel and all drivers, is written in Plurix Java. Our Java compiler directly translates Java source code into Intel machine instructions. Some minor language extensions support device-level programming. During the development of the system we identified conceptual problems which are caused by the restartability requirement of transactions. Clearly interrupts do not reoccur in case of an aborted transaction. Without proper precaution interrupts would get lost or devices could receive broken commands. In this paper we shortly review our DSM system and present the "smart buffer" concept to bridge the gap between restartable DSM transactions and non-restartable device operations and events. Finally, we validate our proposed solution by performance measurements and compare the kernel interface to traditional operating systems.