Personal tools

Message-passing interfaces to disks

Summary:

Expose a message-passing interface to disks and similar devices in Barrelfish, and integrate it transparently into the existing inter-process communication system.

Motivation:

Disk drives are increasingly intelligent devices, which can handle a large number of outstanding requests at a time. However, communication with a disk driver remains a fairly high-latency operation due to seek times, etc. This project will investigate the consequences of making a disk look like an existing OS process, and communicating with it using standard IPC interfaces.

Goals:

Build an interface to a set of disks (for example, starting with a relatively simple adaptor interface such as SATA) which is addressed using the same abstractions and stubs as Barrelfish already uses for inter-process communication. Above this, write (or port) a simple storage or file system to enable performance measurements and support application workloads.

The research goal is to establish the tradeoff involved in talking to a disk in this way, as opposed to the more conventional approach taken in (say) Linux device drivers.

Background:

Device drivers. C, Haskell (for the stub compiler). Asynchronous (event-driven) programming. File systems.

Contact:

Timothy Roscoe

Document Actions