Concurrent Object-Oriented Device Driver Programming in Apertos Operating System


Jun-ichiro Itoh and Yasuhiko Yokote

Published as:

Sony Computer Science Laboratory Technical Memo SCSL-TM-94-005


This paper proposes a new approach of implementing low-level OS components, especially device drivers. We introduce the notion of concurrent objects into device driver programming. A device driver for every hardware device is implemented as independent concurrent objects. A device driver object has a single thread of control, so that mutual exclusion operations such as spl and semaphores are not necessary. Mechanisms of synchronization, scheduling objects, and interrupt mask handling are clearly separated from actual device control programs, and these are implemented by the system for device driver objects. Both an interrupt and a service request to a device driver object will be delivered as a message, so programmers need not to distinguish these two types of invocation requests. Therefore, programmers can concentrate on writing the actual device control codes without writing auxiliary codes for synchronization, and the codes will be executed much safer. We show our implementation on Apertos object-oriented operating system, and its preliminary evaluation results. Evaluation results demonstrate our approach can be implemented cost-effective.