Sciweavers

SIGCOMM
2010
ACM

The case for active device drivers

13 years 4 months ago
The case for active device drivers
We revisit the device-driver architecture supported by the majority of operating systems, where a driver is a passive object that does not have its own thread of control and is only activated when an external thread invokes one of its entry points. This architecture complicates driver development and induces errors in two ways. First, since multiple threads can invoke the driver concurrently, it must take care to synchronise the invocations to avoid race conditions. Second, since every invocation occurs in the context of its own thread, the driver cannot rely on programming-language constructs to maintain its control flow. Both issues make the control logic of the driver difficult to implement and even harder to understand and verify. To address these issues, we propose a device-driver architecture where each driver has its own thread of control and communicates with other threads in the system via message passing. We show how this architecture addresses both of the above problems. Un...
Leonid Ryzhyk, Yanjin Zhu, Gernot Heiser
Added 06 Dec 2010
Updated 06 Dec 2010
Type Conference
Year 2010
Where SIGCOMM
Authors Leonid Ryzhyk, Yanjin Zhu, Gernot Heiser
Comments (0)