Concurrent Object-Oriented Device Driver Programming in Apertos Operating System
Jun-ichiro Itoh and Yasuhiko Yokote
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.