Process-Oriented Device Driver Development

Barnes, Frederick R.M. and Ritson, Carl G. (2010) Process-Oriented Device Driver Development. Concurrency and Computation: Practice and Experience, 22 (8). pp. 182-196. ISSN 1532-0634. (The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided)

The full text of this publication is not available from this repository. (Contact us about this Publication)
Official URL


Operating systems (OSs) are the core software component of many modern computer systems, ranging from small specialized embedded systems through to large distributed OSs. The demands placed upon these systems are increasingly complex, in particular, the need to handle concurrency in order to exploit increasingly parallel (multi-core) hardware, to support increasing numbers of user and system processes and to take advantage of increasingly distributed and decentralized systems. The languages and designs that existing OSs employ provide little support for concurrency, leading to unmanageable programming complexities and ultimately errors in the resulting systems, which are hard to detect, hard to remove and hard to prove correct. This article presents the process-oriented design of a universal serial bus device driver infrastructure for the Raw Metal occam eXperiment (RMoX) OS and its implementation in the occam-pi multiprocessing language. We show how concurrency can be used for the benefit of such systems, simplifying design and implementation, providing freedom from race-hazard and aliasing errors and the potential for guarantees of operating system scalability, reliability and efficiency.

Item Type: Article
Uncontrolled keywords: determinacy analysis, Craig interpolants
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Faculties > Science Technology and Medical Studies > School of Computing > Programming Languages and Systems Group
Depositing User: Carl Ritson
Date Deposited: 21 Sep 2012 09:49
Last Modified: 17 Apr 2014 14:34
Resource URI: (The current URI for this page, for reference purposes)
  • Depositors only (login required):