Operating-systems are the core software component of many modern com- puter systems, ranging from small specialised embedded systems through to large dis- tributed operating-systems. The demands placed upon these systems are increasingly complex, in particular the need to handle concurrency: to exploit increasingly parallel (multi-core) hardware; support increasing numbers of user and system processes; and to take advantage of increasingly distributed and decentralised systems. The languages and designs that existing operating-systems employ provide little support for concur- rency, leading to unmanageable programming complexities and ultimately errors in the resulting systems; hard to detect, hard to remove, and almost impossible to prove correct. Implemented in occam-π, a CSP derived language that provides guarantees of free- dom from race-hazards and aliasing error, the RMoX operating-system represents a novel approach to operating-systems, utilising concurrency at all levels to simplify de- sign and implementation. This paper presents the USB (universal serial bus) device- driver infrastructure used in the RMoX system, demonstrating that a highly concurrent process-orientated approach to device-driver design and implementation is feasible, efficient and results in systems that are reliable, secure an d scalable.
[1]
Peter H. Welch,et al.
Higher-Level Paradigms for Deadlock-Free High-Performance Systems
,
1993
.
[2]
Ken Thompson,et al.
Plan 9 from Bell Labs
,
1995
.
[3]
Kurt Debattista,et al.
Cache-affinity scheduling for fine grain multithreading
,
2002
.
[4]
C. A. R. Hoare,et al.
Communicating sequential processes
,
1978,
CACM.
[5]
Fred R. M. Barnes,et al.
Compiling CSP
,
2006,
CPA.
[6]
Peter H. Welch,et al.
Communicating Mobile Processes : Introducing occam-pi
,
2005
.
[7]
James R. Larus,et al.
Language support for fast and reliable message-based communication in singularity OS
,
2006,
EuroSys.
[8]
Fred R. M. Barnes,et al.
Dynamics and pragmatics for high performance concurrency
,
2003
.
[9]
Mark P. Jones,et al.
A principled approach to operating system construction in Haskell
,
2005,
ICFP '05.
[10]
Peter H. Welch,et al.
Graceful Termination -- Graceful Resetting
,
1989
.
[11]
Peter H. Welch,et al.
Mobile Data, Dynamic Allocation and Zero Aliasing: an occam Experiment
,
2001
.
[12]
Robin Milner,et al.
Communicating and mobile systems - the Pi-calculus
,
1999
.
[13]
Brian Vinter,et al.
RMoX: A Raw-Metal occam Experiment
,
2003
.